单独测试Symfony控制器

时间:2014-08-31 15:58:54

标签: php symfony

我有一个带有FOSRestBundle的Symfony 2应用程序。遵循标准设计指南,我尽快脱离框架。我的控制器方法如下:

public function getFooBarAction() {
    $service = Factory::newWithConnection( $this->get( 'database_connection' ) )->newFooBarService();
    return $this->handleView( $this->view( $service->doStuff() ) );
}

Factory是我应用的顶级工厂。我的集成测试都构建了一个内存sqlite数据库,将我的应用程序表安装到其中并使用它创建Factory的实例。这是由

封装的
$testFactory = TestEnvironment::newInstance()->getFactory();

这意味着我使用数据库的所有测试都只有测试明确添加的可用数据,并且测试仍然完全相互隔离。

现在我想添加一些系统测试,以确保我的API端点的参数处理正常工作。我可以创建源自WebTestCase的测试类,然后通过$client获得static::createClient()。然而,然后使用Symfony DI机制返回的数据库。我可以通过config_test.yml将其更改为内存sqlite,但这并不能让我真正隔离测试。

我可以执行getNewSymfonyApplication( $myNewConnection )->createClient()之类的操作吗?

0 个答案:

没有答案