0
關於如何在phpunit測試中測試CakePHP控制器Flash消息內容的任何想法?我需要測試這一點:如何在phpunit測試中聲明Flash消息的內容?
if ($var == "yes") {
//do something
} else {
$this->Flash->error(__('Invalid username or password, try again;));
}
關於如何在phpunit測試中測試CakePHP控制器Flash消息內容的任何想法?我需要測試這一點:如何在phpunit測試中聲明Flash消息的內容?
if ($var == "yes") {
//do something
} else {
$this->Flash->error(__('Invalid username or password, try again;));
}
按照documentation,如果您使用的版本3.4.7或更高版本,可以發出你的GET/POST /不管之前使用enableRetainFlashMessages()函數。然後你可以使用assertSession()來檢查flash消息的存在。
例子:
$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(),我可以使用上述過程來檢查預期消息的存在。我曾以爲這不起作用,但它確實! (這從來沒有發生......)
我想你應該通過使用像硒這樣的UI來測試這個。基本上:1)執行應該觸發閃光消息的動作2)檢查重定向3)檢查頁面上的閃光消息 – dbrumann