我刚刚学习了单元测试,我试图理解如何将它与现有代码结合到一个项目中。假设我想为该项目中的特定类编写测试,但该类需要另一个类的实例才能运行和/或测试方法。我该怎么处理这个?
发布于 2014-04-21 08:35:58
如果代码已经在生产中,并且没有对其进行测试,那么根据定义,您不能对它执行TDD。在这一点上,您至少有以下几种选择:
发布于 2014-04-21 05:54:59
这是一个非常复杂的问题,在设计时不考虑可测试性的遗留系统中,可能存在大量的耦合,这种耦合使得隔离测试(单元测试)更加困难。
如果您问了一个具体的问题、代码和具体的情况,我可以给出具体的答案,但是如果您请求一般的建议,我能做的最好的事情就是向您推荐一本出色的书“michael有效地使用遗留代码(http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)”。
发布于 2014-04-21 06:03:50
这并不总是容易的,有时您只需要务实地使用集成测试或端到端测试,直到您有了可测试的重构代码。
也许尝试重构类以使用接口而不是具体的类,并在构造过程中注入实现。然后使用模拟框架或滚动您自己的模拟类,并在测试期间将其注入其中。
一些模拟框架能够模拟具体的类,但它取决于语言。
https://softwareengineering.stackexchange.com/questions/236492
复制相似问题