【发布时间】:2014-06-05 20:15:24
【问题描述】:
这是我对 Symfony2 的第一个控制器单元测试。从文档中尽可能完整地复制,我只是断言包含一些文本。
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class AdviseeControllerTest extends WebTestCase
{
public function testCreatePageContainsContent()
{
$client = static::createClient();
$crawler = $client->request('GET', '/create/adviseeSet');
$this->assertGreaterThan(
0,
$crawler->filter('html:contains("Name")')->count()
);
}
}
我的路线如下:
advisee_set_create:
pattern: /create/adviseeSet
defaults: { _controller: AcademicsBundle:Advisee:create }
此测试以及任何其他断言包含任何类型内容的测试都失败了。有什么我不知道 $client->request() 或 $crawler->filter() 的工作原理,从默认示例复制没有通过吗?我的测试位于 AcademicsBundle > 测试 > AdviseeControllerTest.php
输出的消息(带有--verbose和-debug)是:
...\AcademicsBundle\Tests\Controller\AdviseeControllerTest::testCreatePageContainsContent
Failed asserting that 0 is greater than 0.
【问题讨论】:
-
运行测试时的错误信息是什么?
-
@Javad 我编辑了我的问题以包含这个
-
确保
/create/adviseeSet为真。确保您的测试类在namespace Academics\AcademicsBundle\Tests\Controller;的命名空间中 -
我的命名空间是正确的,与一些通过实体单元测试相比。
-
你在测试类的构造中有什么东西吗?你清除缓存了吗?