【问题标题】:IoC Container + Unit TestingIoC 容器 + 单元测试
【发布时间】:2011-04-27 03:06:47
【问题描述】:

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

【问题讨论】:

    标签: php unit-testing oop ioc-container


    【解决方案1】:

    是的,这很好,可以防止小猫被杀死。请记住,IoC 容器对三件事很有用:

    1. 对象组合。
    2. 生命周期管理。
    3. 拦截。

    如果您需要这三项中的任何一项,为什么不让专为这项工作而构建的工具为您完成呢?

    【讨论】:

      【解决方案2】:

      是和不是。

      您当然可以使用一个,但您不应该必须使用(容器非常适合组合复杂系统,但在单元测试中不应该出现这些复杂性)。

      你为什么要考虑它?手卷等效物会很乏味(总是如此),还是会非常困难?如果是后者,那么您就是在用胶带解决问题。

      【讨论】:

      【解决方案3】:

      无论哪种方式都能为您提供最准确(最接近真实用例)且最轻量(无所有依赖项)的待测试单元实例。如果你巧妙地构建你的类——大多数情况下不这样做——你应该能够在没有依赖关系的情况下实例化它们,因此测试应该很容易。如果你想一次对一组类运行测试(看看它们是如何一起工作的......我不知道是否有很多人这样做),那么也许是一个带有一些存根的工厂(一种封装实例化的设计模式)否则司机会做到这一点。

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

      所以,是的,它本身不是“容器”,而是可能由您指定的其他模式或类来重新创建理想的测试情况。

      【讨论】:

        猜你喜欢
        • 2012-05-02
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        • 1970-01-01
        • 2010-11-30
        • 1970-01-01
        相关资源
        最近更新 更多