单元 测试设计或停止测试设计



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

我通常认为可测试的代码是好的代码。要使代码可测试,需要更好的解耦,以便可以使用测试工具隔离测试每个组件。但是,实现中不应有仅由单元测试使用的代码。

另外,请记住,

您需要测试的是对象的公共 API,而不是受保护/私有方法。在私有/受保护的方法中查找错误应该是日志记录/调试器的用途。毕竟,其中的错误也会传播到公共方法。因此,只要公共方法满足测试,受保护的方法也将包括在内。

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

我大多同意 Staale,设计良好的代码应该是可测试的。
我不使用构造函数注入或派生类进行测试。我相信使用"服务定位器"是进行依赖注入的正确方法。

如果你的测试设计得很好,它们将模拟现实世界的用法。 因此,一套非常好的单元测试将涵盖应用程序可以利用您的代码的所有可能方式,这将导致一个强大的实现。 如果你的测试有缺陷,那么你就不会获得太多收获。

最新更新