2

我正在尝试编写一个单元测试(phpunit)来涵盖控制器操作。我收到有关 getRequest() 调用无效范围的问题。

注意:我是 Symfony2 和 TDD (phpunit) 的新手

我想这是因为没有这样的要求?

我的问题是:

  1. 我可以模拟一个请求对象吗?
  2. 我是否以正确的方式处理这个问题?我是否应该将大部分代码放入服务中,然后对服务进行单元测试,并且只对控制器进行功能测试?

我认为了解前进的原则是我所追求的,而不是代码行。

4

1 回答 1

2

Web 测试用例中内置了一个模拟请求。只需扩展它并使用爬虫来发出请求。

例如:

public function testMyController()
{
    $client = static::createClient();
    $router = $this->container->get('router');
    $url = $router->generate('routeName');
    $crawler = $client->request('GET', $url);

    // check we get a 200
    $this->assertEquals(200, $client->getResponse()->getStatusCode(), "Unexpected HTTP status code for API Config call");
}
于 2013-06-27T16:05:35.743 回答