2013-04-01 39 views
0

我试图尽可能写我的代码(和可测试),但这里是我正在考虑的东西。模拟存储当数据库应注入DI(通过构造函数)

我有一个对象,并在那儿DI

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

} 

传递依赖当我写一个单元测试,我把我的DI容器和获取对象像

$object = $context->getService("class"); 

,然后用它的功能。

问题是,我该如何模拟连接或更好的“某些存储” - 而不是数据库连接。

感谢

回答

0

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

+0

我一直在想这个,但我还在质疑自己,“这真的是很好的解决方案吗?”但是当我从另一方面考虑时,这是如何减少依赖关系并进行测试的唯一方法。只是一个问题,你在哪里做工厂?在测试目录或应用程序中? –

+0

我们使用测试代码保留它们,因为它们只创建与测试相关的嘲笑,而不是应用程序运行时。我们在部署时将备用测试目录放在备用,以减少交付。 –

+0

非常感谢。这确实有道理。 –