断言从控制器路由返回的特定视图


Assert specific view returned from controller route

假设我有一个看起来像这样的控制器方法:

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) 按照你朋友告诉你的去做。