【发布时间】:2011-04-27 03:06:47
【问题描述】:
可以使用容器来创建要测试的对象吗?还是我应该手动构建它们?
【问题讨论】:
标签: php unit-testing oop ioc-container
可以使用容器来创建要测试的对象吗?还是我应该手动构建它们?
【问题讨论】:
标签: php unit-testing oop ioc-container
是的,这很好,可以防止小猫被杀死。请记住,IoC 容器对三件事很有用:
如果您需要这三项中的任何一项,为什么不让专为这项工作而构建的工具为您完成呢?
【讨论】:
是和不是。
您当然可以使用一个,但您不应该必须使用(容器非常适合组合复杂系统,但在单元测试中不应该出现这些复杂性)。
你为什么要考虑它?手卷等效物会很乏味(总是如此),还是会非常困难?如果是后者,那么您就是在用胶带解决问题。
【讨论】:
无论哪种方式都能为您提供最准确(最接近真实用例)且最轻量(无所有依赖项)的待测试单元实例。如果你巧妙地构建你的类——大多数情况下不这样做——你应该能够在没有依赖关系的情况下实例化它们,因此测试应该很容易。如果你想一次对一组类运行测试(看看它们是如何一起工作的......我不知道是否有很多人这样做),那么也许是一个带有一些存根的工厂(一种封装实例化的设计模式)否则司机会做到这一点。
http://wiki.answers.com/Q/What_is_stubs_and_drivers_in_software_testing
所以,是的,它本身不是“容器”,而是可能由您指定的其他模式或类来重新创建理想的测试情况。
【讨论】: