takLog

備忘録とか、その他

Laravel Duskにてmaxlengthが設定されているフォームに対して異常系のテストを実施する場合

Laravelで開発を行って、ブラウザテストの自動化となるとDuskを利用されると思います。
今回は主題のような状態の際、異常系のテストを行いたいときの書き方を備忘録として残す。

結論

typeメソッドではなく、valueメソッドを使用する。

実際の例

<!-- 20文字以上は受け付けないフォーム -->
<input type="text" name="example" maxlength="20">
<?php
// 25文字の値をセット不可能な例
public function BadExample()
{
    // 入力テスト用
    $test_string = 'あいうえおかきくけこさしすせそたちつてとなにぬねの' // 25文字
    $this->browse(function (Browser $browser) use ($test_string) {
        $browser->visit('/examplepage')
                ->type('example', $test_string);
    });
}

// 25文字の値をセット可能な例
public function GoodExample()
{
    // 入力テスト用
    $test_string = 'あいうえおかきくけこさしすせそたちつてとなにぬねの' // 25文字
    $this->browse(function (Browser $browser) use ($test_string) {
        $browser->visit('/examplepage')
                ->value('example', $test_string);
    });
}

以上

まぁ、テスト観点とか色々あると思うんですけどね。
20文字しか入力できないからおk!と、してもいいならいいんだけど。

参考

ブラウザテスト(Laravel Dusk) 5.5 Laravel
Browser Tests (Laravel Dusk) - Laravel - The PHP Framework For Web Artisans