2017-08-15 50 views
0

phpunitのテストでCakePHPコントローラのフラッシュメッセージの内容をどのようにテストできるのですか?私はこれをテストする必要があります。phpunitテストでフラッシュメッセージの内容をどのようにアサートできますか?

if ($var == "yes") { 
    //do something 
} else {   
    $this->Flash->error(__('Invalid username or password, try again;)); 
} 
+0

私はあなたがUIを介してこれはセレンのようなものを使用してテストする必要がありますと思う。基本的には:1)フラッシュメッセージをトリガーするはずのアクションを実行する2)リダイレクトをチェックする3)ページ上のフラッシュメッセージをチェックする – dbrumann

答えて

0

documentationによると、あなたはバージョン3.4.7以降を使用している場合、あなたは何/あなたのget /ポストを発行する前にenableRetainFlashMessages()関数を使用することができます。次に、assertSession()を使用してフラッシュメッセージの有無を確認できます。

例:

$this->enableRetainFlashMessages(); 
$this->get('call-your-public-controller-function-here'); 
$this->assertSession('Invalid username or password, try again', 'Flash.flash.0.message'); 

私は実際にそのメソッドが含まれていない今の古いバージョン(3.1.13)を使用していますので、私は個人的にテストしていないので、私は「マニュアルに従って」述べて上記のコード。

...私が使用しているバージョンでは、基本的にenableRetainFlashMessages()呼び出しを発行せずに同じことができることがわかりました。 assertSession()を使用することにより、上記のプロセスを使用して予期されるメッセージの存在を確認できます。私はそれがうまくいかないと思っていましたが、それはありました! (それは決して起こらない...)

関連する問題