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

时间:2014-09-04 20:27:34

标签: php unit-testing laravel

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

public function someRoute()
{
    if(some condition) {
        return View::make('view1');
    }

    return View::make('view2');
}

我如何在单元测试中断言view1已退回而不是view2?一位同事提到,如果我可以将HTML响应作为字符串获取,那么我可以使用PHPUnit的assertRegExp来对付返回的HTML以匹配仅在view1中找到的给定字符串,但这似乎不正确对我来说。

有更好的方法吗?更深层次的问题可能是我甚至需要担心在我的单元测试中返回哪个视图,或者我应该只$this->assertResponseOk()

1 个答案:

答案 0 :(得分:2)

您正在将单元测试与验收测试混合,因此您有两种选择:

1)将这些测试拆分为单元和验收,并使用像Codeception这样的工具来帮助您接受,这种方式比PHPUnit更优雅。使用Codecption,您可以执行以下操作:

$I->amOnPage('/someUrl');

$I->see('John Doe');

2)做你朋友告诉你做的事。