所以哪一个更好。我们是否开始让测试来设计我们的代码。我们开始引入依赖的构造函数注入仅仅是为了使代码可测试吗?或者我们使用"override“受保护的方法&测试类的子类。
发布于 2008-10-09 09:25:25
我通常认为可测试的代码是好的代码。对于可测试的代码,您需要更好的解耦,以便可以使用测试工具隔离测试每个组件。但是,实现中不应该只有单元测试使用的代码。
此外,请记住,您需要测试的是对象的公共API,而不是它的受保护/私有方法。在私有/受保护的方法中查找bug应该是日志记录/调试器的作用。毕竟,这些方法中的bug也会传播到公共方法。因此,只要公共方法完成测试,受保护的方法也会被覆盖。
如果您使用的是java,并且有在同一个包中实现公共接口的包范围的类,我会将单元测试放在同一个包中的一个单独的文件夹中,以测试这些类。您还可以将单元测试放在与被测试类相同的包中,以测试受保护的方法。
发布于 2008-10-09 13:09:23
我基本上同意Staale的观点,设计良好的代码应该是可测试的。
我不使用构造函数注入或派生类来进行测试。我相信使用“服务定位器”是做依赖注入的正确方式。
https://stackoverflow.com/questions/186501
复制相似问题