假设我有一个看起来像这样的控制器方法:
public function someRoute()
{
if(some condition) {
return View::make('view1');
}
return View::make('view2');
}
我如何在单元测试中断言返回了view1
而不是view2
?一位同事提到,如果我可以将HTML响应作为字符串获得,那么我就可以对返回的HTML使用PHPUnit的assertRegExp
来匹配仅在view1
中找到的给定字符串,但这对我来说似乎不正确
有更好的方法吗?一个更深层次的问题可能是,我是否需要担心在单元测试中返回了哪个视图,或者我是否应该只返回$this->assertResponseOk()
?
您将单元测试和验收测试混合在一起,因此您有两个选项:
1) 将这些测试划分为单元和验收,并使用Codeception这样的工具来帮助您进行验收,对于这种测试,它比PHPUnit要优雅得多。使用Codecption,您可以执行以下操作:
$I->amOnPage('/someUrl');
$I->see('John Doe');
2) 按照你朋友告诉你的去做。