2011-06-09 43 views
3

我知道这是一个主观问题,因此可能会被关闭,但我认为这值得提问。而重构生成一个图书馆。重新测试?

比方说,使用TDD构建应用程序并通过重构时,会出现一个库。如果将代码从主应用程序中抽出并放入单独的程序集中,那么即使您的主应用程序已经在测试它,您是否花时间编写了覆盖代码的测试? (这只是一个重构。)

例如,在NerdDinner应用程序中,我们看到了FormsAuthentication和MembershipProvider的包装器。这些对象在多个应用程序中非常方便,因此可以将它们从NerdDinner应用程序中提取出来并放入自己的程序集中并重用。

如果您今天从头开始编写NerdDinner,并且您注意到您有一个真正有用的包装和服务的抓包,并且将它们带入一个新的装配体中,您是否会创建新的测试来完全覆盖您的新装配体 - 可能重复测试?足以说明,如果您的主应用程序在其所有测试中都运行绿色,那么您的新程序集有效覆盖了吗?

虽然我对NerdDinner的示例可能过于简单而不真正担心,但我更多地考虑更大的API或库。那么,您是否编写测试来重新覆盖您之前测试的内容(可能是一个问题,因为您可能会开始所有测试的传递),还是只是在新程序集发展时编写测试?

回答

2

一般来说,是的,我会为新库编写测试;但它非常依赖时间限制。至少,我会经历并重构存在的单元测试以正确引用重构的组件;只有这一点才能解决这个问题。

+0

感谢您的快速回复!这与我的想法是一致的。 – 2011-06-09 23:12:43

+0

是的..每一个公共/暴露类型都需要自己的测试。你不能依靠客户来测试它,因为客户可能会随着时间的推移而改变(删除或添加)。 – Gishu 2011-06-10 02:57:36