phpunit测试assertNotRegExp()没有按预期工作?

时间:2016-05-02 15:32:22

标签: php laravel phpunit lumen

测试失败,声称'{“错误”:{“message”:“未找到书籍”}}'与PCRE模式“/未找到书籍/”不匹配。

为什么此模式与内容字符串不匹配?

<?php

namespace Tests\App\Http\Controllers;

use TestCase;

class BooksControllerTest extends TestCase
{
    /** @test **/
    public function show_route_should_not_match_an_invalid_route()
    {
        $this->get('/books/this-is-invalid');

        $this->assertNotRegExp(
            '/Book not found/',
            $this->response->getContent(),
            'BooksController@show route matching when it should not.'
        );
    }
}

1 个答案:

答案 0 :(得分:4)

模式lightSlider 匹配内容字符串/Book not found/。这是正常的。

请注意,您正在使用{"error":{"message":"Book not found"}} - 即您确实在说 - “确保模式匹配字符串”。因此,当模式不匹配时断言成功,并且当模式匹配时失败。

好像你真的想用assertNotRegExp()进行测试。