(PHP)依赖注入(DI)的单元测试

时间:2011-10-09 10:20:52

标签: php dependency-injection phpunit

在过去的几天里,我读了很多关于依赖注入的内容。 现在,因为我正在尝试升级我的phpunit技能,我正在考虑如何实现这个DI。在我的单元测试中。

说我有两个对象:

class Event{
}

class Shift{
    public function __construct(Event $e)
    {
        (...)
    }
}

这是我如何理解DI。 现在我想为我的移位构造函数编写一个测试:

class ShiftTest extends
    \ModelTestCase
{
    public function testCanCreateShift()
    {
        $e = new \Js\Entity\Event();
        $this->assertInstanceOf('JS\Entity\Shift', new \JS\Entity\Shift($e));
    }
}

但是现在我不想在这里定义一个完整的事件对象。那么在phpUnit中创建事件对象的建议方法是什么?

1 个答案:

答案 0 :(得分:3)

这就是模拟,存根。等用于。您创建一个SUT(正在测试的系统),并模拟所有依赖项。 如果没有DI,你将无法做到这一点。