Как я могу утверждать содержание сообщений Flash в тестах phpunit?

Любая идея о том, как я могу проверить содержимое флэш-сообщения контроллера CakePHP в тестировании phpunit? Мне нужно проверить это:

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

0

Решение

Согласно документация, если вы используете версию 3.4.7 или более позднюю, вы можете использовать функцию enableRetainFlashMessages () перед выполнением get / post / what. Затем вы можете проверить наличие флеш-сообщения с помощью 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 (), я могу проверить наличие ожидаемого сообщения, используя процесс, описанный выше. Я предполагал, что это не сработает, но это сработало! (Этого никогда не бывает …)

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector