重构产生了一个库重新测试?

问题描述

| 我知道这是一个主观的问题,因此可能是封闭的,但我认为值得提出。 假设,当使用TDD构建应用程序并进行重构时,将显示一个库。如果将代码从主应用程序中取出并放入单独的程序集中,即使主应用程序已经在测试它,您是否也花时间编写涵盖该代码的测试? (这只是一个重构。) 例如,在NerdDinner应用程序中,我们看到FormsAuthentication和MembershipProvider的包装。这些对象在多个应用程序中非常方便,因此可以将它们从NerdDinner应用程序中提取出来,并放入其自己的程序集中并重新使用。 如果您今天是从头开始编写NerdDinner的,并且您发现您有一个非常有用的包装器和服务的抓包,并将它们带入新的程序集中,则是否要创建完全覆盖新程序集的新测试-可能重复测试?足以说明一下,如果您的主应用程序在所有测试中均以绿色运行,那么新程序集将得到有效覆盖? 尽管我在NerdDinner的示例可能过于简单,以至于无法真正担心,但我还是在考虑更大的API或库。那么,您是编写测试以恢复以前测试过的内容(可能是一个问题,因为您可能会通过所有测试,所以可能会出现问题),还是只是随着新程序集的发展而编写测试?     

解决方法

        通常,是的,我会为新库编写测试;但它非常取决于时间限制。至少,我会仔细分析并重构现有的单元测试,以正确地引用重构的组件;仅此一项就可以解决问题。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...