フォーム送信とリダイレクトでの正しい応答を使用して、サインイン プレゼンター アクションをテストしたいと考えています。たとえば、正しくログインした後、ユーザーがどこかにリダイレクトされ、「ログイン成功」というテキストのフラッシュメッセージが表示されることをテストしたい。
すべての例で、正しいフォームの動作をテストする唯一の方法は、RedirectResponse (以下を参照) を取得することをテストすることです。少なすぎませんか?私が説明するテストをどのように行うのですか?それは可能ですか?
function testSignUpSuccess()
{
$post = [
'identity' => 'john.doe@gmail.com',
'password' => 'superSecret123',
];
$pt = $this->getPresenterTester()
->setPresenter('Sign')
->setAction('up')
->setHandle('signUpForm-submit')
->setPost($post);
$response = $pt->run();
Assert::true($response instanceof Nette\Application\Responses\RedirectResponse);
//TODO test that flashMessage: 'login successful' is displayed on final page
}
注: この例では、 PresenterTesterツールを使用して応答を取得しますが、重要な部分はその応答を操作することであるため、ネイティブの方法で取得するか、このツールで取得するかは問題ではありません。