【发布时间】:2013-02-18 13:16:14
【问题描述】:
我显然遗漏了一些非常明显的东西,但这让我发疯:
为了测试我的代码,我需要将我的实体置于已定义的状态。它根本行不通。它完全忽略了我所做的任何更改,例如这个:
$this->test_character->setLocation(null);
$crawler = $this->client->request('GET', '/en/character/start');
$this->assertTrue($this->client->getResponse()->isSuccessful(), "start page failed to load");
$this->assertGreaterThan(0, $crawler->filter('html:contains("Character Placement")')->count(), 'start page content failure');
调试此测试表明它失败了,因为实际上 Location 未设置为 null。添加一个 flush() 不会改变任何东西,所以这不是问题。我最好的猜测是它仅在测试客户端上更改它,而不是在生成页面的后端上更改它,但留下了一个问题:我如何将我的实体置于定义的状态以测试它们?
【问题讨论】:
-
$this->test_character 与测试有什么关系?当你测试你的后端时,你模拟了一个客户端(浏览器)访问它。您不应该做任何不同于客户对您的应用程序所做的事情。
标签: unit-testing symfony phpunit