我正在尝试编写一个单元测试(phpunit)来涵盖控制器操作。我收到有关 getRequest() 调用无效范围的问题。
注意:我是 Symfony2 和 TDD (phpunit) 的新手
我想这是因为没有这样的要求?
我的问题是:
- 我可以模拟一个请求对象吗?
- 我是否以正确的方式处理这个问题?我是否应该将大部分代码放入服务中,然后对服务进行单元测试,并且只对控制器进行功能测试?
我认为了解前进的原则是我所追求的,而不是代码行。
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");
}