IoC容器+单元测试

时间:2010-10-18 19:25:05

标签: php unit-testing oop ioc-container

使用容器创建要测试的对象是否可以?或者我应该手动构建它们吗?

3 个答案:

答案 0 :(得分:2)

是的,它没关系,并且会让小猫免于被杀。请记住,IoC容器对三件事很有用:

  1. 对象组合。
  2. 生命周期管理。
  3. 拦截。
  4. 如果您需要这三个项目中的任何一项,为什么不让这个工作的工具为您做?

答案 1 :(得分:1)

是和否。

你当然可以使用一个,但你不应该拥有(容器非常适合组成复杂的系统,但在单元测试中,这些复杂性不应该存在)。

你为什么要考虑它?手工卷制的等价物只是单调乏味(它总是如此),还是会难以理解?如果是后者那么你就会在问题上放置胶带。

答案 2 :(得分:0)

无论哪种方式都能为您提供最准确(最接近真实用例)和最轻(无所有依赖关系)的待测单元实例。如果你巧妙地构建你的类 - 大部分都没有 - 你应该能够在没有依赖性的情况下实例化它们,因此测试应该是快速的。如果你想同时对一组类运行测试(看看它们是如何协同工作的......但是,如果有很多人这样做,我不知道),那么也许是一个工厂(一个封装实例化的设计模式)和一些存根或者司机会做的。

http://wiki.answers.com/Q/What_is_stubs_and_drivers_in_software_testing

所以,不是一个“容器”本身,但可能还有其他一些模式或类别,你负责重建理想的测试环境。