我在ASP.NET MVC Web应用程序上运行TDD。
通过DI容器(在我的Castle Windsor案例中)创建集成测试以演示类型的正确实例化是标准做法吗?
如果是这样,你会嘲笑容器,还是按原样使用它?
或者......这是不是出于某种原因?
感谢。
答案 0 :(得分:1)
测试驱动开发中的术语测试通常被解释为单元测试,而非集成测试,因此在纯TDD过程中我不认为编写和运行任何类型的集成测试都是标准做法。
这并不意味着编写和运行集成测试不值得 - 它只是不被认为是TDD的标准做法。但是,如果您将范围扩展到包含一般的敏捷开发,大多数敏捷组织都认为它是维护和运行自动验收测试的标准部分。
像你问的那些集成测试很适合这种类型的过程。您可能不希望在开发计算机上经常这样做,但仍然需要进行持续集成(CI)构建,或者至少每天构建一次(依赖于复杂性)。
当你将它们视为验收测试时,让你的DI容器解决整个堆栈是最合理的 - 也就是说,在这种情况下不会涉及模拟:你必须测试真实交易。 / p>
但最重要的是:如果适合您,请执行。敏捷/精益开发不是教条 - 它是关于不断寻求和应用使您的团队最高效的技术。虽然从其他人的错误和成功中学习是有价值的,但您必须最终尝试并衡量最适合您团队的方法。