数据库应该由DI注入时的模拟存储(通过构造函数)

时间:2013-04-01 18:40:39

标签: php unit-testing dependency-injection mocking

我试图尽可能地编写我的代码(并且可以测试),但这是我正在考虑的事情。

我有一个对象,我通过DI传递依赖关系

<?php    
public function __constructor(Connection $connection) {

}

当我编写单元测试时,我将我的DI容器拿到像

这样的对象
$object = $context->getService("class");

然后使用它的功能。

问题是,如何模拟连接或更好,“一些存储” - 不是neccesarilly数据库连接。

由于

1 个答案:

答案 0 :(得分:0)

问题在于(从我的角度来看)在测试中使用DIC。当我们在Symfony2应用程序上进行单元测试时,我们会模拟每个依赖项(使用Mockery)。我们为公共模拟建立工厂,如数据库连接接口或Redis连接接口等。这加快了我们的测试创建过程。