2016-05-02 10 views
0

'{"エラー":{"メッセージ": "ブックが見つかりません"}}'はPCREパターン "/ Book not found /"に一致しませんでした。phpunit test assertNotRegExp()が期待通りに機能していませんか?

なぜこのパターンはコンテンツ文字列と一致しませんか?

<?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(), 
      '[email protected] route matching when it should not.' 
     ); 
    } 
} 

答えて

3

パターン/Book not found/は、コンテンツの文字列{"error":{"message":"Book not found"}}と一致しません。それは正しく動作します。

assertNotRegExp()を使用しています。つまり、「のパターンがの文字列と一致していないことを確認してください」という文字通りです。したがって、アサーションはパターンが一致しないと成功し、パターンが一致すると失敗します。

実際にassertRegExp()をテストに使用したかったようです。

+0

Hmmm。 「ルーメンを使ってAPIを書く」の作業私は経路の更新に関するセクションを誤って読んだことが分かりました。 $ app-> get( '/ books/{id:[\ d] +}'、 'BooksController @ show')で重複ルートを修正しました。今はテストの仕事です。ルートはコントローラにルーティングされない式と一致しません。 – Ryderpro

関連する問題