2

フォーム送信とリダイレクトでの正しい応答を使用して、サインイン プレゼンター アクションをテストしたいと考えています。たとえば、正しくログインした後、ユーザーがどこかにリダイレクトされ、「ログイン成功」というテキストのフラッシュメッセージが表示されることをテストしたい。

すべての例で、正しいフォームの動作をテストする唯一の方法は、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ツールを使用して応答を取得しますが、重要な部分はその応答を操作することであるため、ネイティブの方法で取得するか、このツールで取得するかは問題ではありません。

4

1 に答える 1