测试设计或停止测试设计

时间:2008-10-09 09:18:14

标签: unit-testing testing

哪个更好。 我们是否开始让测试设计我们的代码。我们是否开始为依赖项引入构造函数注入以使代码可测试?或者我们使用“覆盖”保护方法&子类是被测试的类。

3 个答案:

答案 0 :(得分:3)

我一般认为可测试代码是很好的代码。对于可测试的代码,您需要更好的去耦,以便可以使用测试工具单独测试每个组件。但是,单元测试中不应该使用实现中的代码。

另外,请记住,您需要测试的是对象的公共API,而不是它的受保护/私有方法。在private / protected方法中查找bug应该是日志/调试器的用途。毕竟,这些中的错误也会传播到公共方法。因此,只要公共方法完成测试,受保护的方法也将被涵盖。

如果您正在使用java,并且具有在同一个包中实现公共接口的包范围类,我会将单元测试放在单独的文件夹中以测试这些类。您还可以将单元测试放在与测试类相同的包中,以测试受保护的方法。

答案 1 :(得分:0)

我主要赞同Staale,精心设计的代码应该是可测试的 我不使用构造函数注入或派生类进行测试。我相信使用'服务定位器'是进行依赖注入的正确方法。

答案 2 :(得分:0)

如果您的测试设计得很好,它们将模拟实际使用情况。因此,一个非常好的单元测试套件将涵盖应用程序可以利用您的代码的每种可能的方式应该导致强大的实现。如果您的测试存在缺陷,那么您获得的收益并不高。