我知道这是一个主观问题,因此可能会被关闭,但我认为值得一提。
假设在使用TDD构建应用程序并通过重构时,会出现一个库。如果您将代码从主应用程序中取出并将其放入单独的程序集中,那么即使您的主应用程序已在测试它,您是否花时间编写涵盖代码的测试? (这只是一个重构。)
例如,在NerdDinner应用程序中,我们看到FormsAuthentication和MembershipProvider的包装器。这些对象在多个应用程序中非常方便,因此可以从NerdDinner应用程序中提取它们并放入它们自己的程序集中并重复使用。
如果您今天从头开始编写NerdDinner,并且您注意到您有一个非常有用的包装和服务的抓包,并且您将它们带入新的组件,您是否创建了完全覆盖新组件的新测试 - - 可能有重复测试?是否足以说明,如果您的主应用程序在其所有测试中都运行绿色,那么您的新程序集将被有效覆盖?
虽然我使用NerdDinner的例子可能过于简单而无法真正担心,但我更考虑更大的API或库。那么,你是否编写测试来重新覆盖你之前测试的内容(可能是一个问题,因为你可能会开始所有的测试通过)或者你是否只是在新的程序集发展时编写测试?
答案 0 :(得分:2)
一般来说,是的,我会为新库编写测试;但它非常依赖于时间限制。至少,我会通过并重构现有的单元测试来正确引用重构的组件;仅此一点就可以解决这个问题。