【问题标题】:Getting laravel & phpunit to send message when unit test fails单元测试失败时让 laravel 和 phpunit 发送消息
【发布时间】:2013-10-31 05:13:15
【问题描述】:

我正在使用一个函数来测试每个页面中是否存在数组。我正在使用 laravel 的函数assertViewHas。如果我对每个页面都有一个函数来测试这个数组的存在,这会很好,但是这似乎是浪费时间,因为我可以让foreach 为每个页面运行测试。但是,如果其中一个页面的断言失败,我将不知道它是哪一个,phpunit 只会说测试失败。

那么,在命令行中运行phpunit 时,有什么方法可以在失败错误中写入当前的$page

....private $guest_pages=array('/','login','signup');

....
    public function testGuestViewsHaveContent ()
{
    foreach ($this->guest_pages as $page) {
        $response = $this->call('GET', $page);
        $this->assertViewHas('content');
    }
}

【问题讨论】:

    标签: unit-testing laravel phpunit laravel-4


    【解决方案1】:

    你试过回显$_SERVER['SCRIPT_NAME']吗?

    编辑

    Duh...好吧,这不能回答你的问题,我一开始不明白。 所以,assertViewHas 来自 Laravel 扩展的 PHPUnit vendor\laravel\Illuminate\Foundation\Testing\TestCase.php 基本上检查它是否是一个视图实例,是否是一个数组,每个值只检查$this->assertEquals

    assertEquals 可以有一个自定义消息作为第三个参数,所以你可以做的是修改你的测试,而不是使用assertViewhas,而是使用assertEquals,就像在assertViewHas 中一样(扩展 PHPUnit,而不是 Laravel 的测试用例)并提供您的自定义消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多