2016-11-24 8 views
1

Laravels組み込みアプリケーションテストフレームワークでアプリケーションテストを行いたいと思います。 Due to the documentationチェックボックスをオンにすることができます。Laravelでテストするときにチェックボックスをチェックする方法

// HTML 
<input name="accept-terms" type="checkbox"> 

// PHP 
$this 
    ->visit('/foo/bar') 
    ->check('accept-terms') 

これはうまくいきます。しかし、時々私は多くのチェックボックスを持っています。 Like:

// HTML 
<input id="feature-1" name="features[]" type="checkbox" value="1"> 
<input id="feature-2" name="features[]" type="checkbox" value="2"> 
<input id="feature-3" name="features[]" type="checkbox" value="3"> 

// PHP 
$this 
    ->visit('/foo/bar') 
    ->check('#feature-1') 

私はこれらの名前を(上記のように)フェッチできないため、IDでフェッチしようとしました。しかし、私はいつもunreachable fieldエラーが発生するので、それはサポートされていないようです。

+0

これはうまくいくかもしれない: 'ます$ this->訪問( '/ fooの/バー') - >( '機能[]')を取得[0] - >ダニ()' –

+0

あなたが意味確か 'GET'を? 'get'はHTTP GET要求をトリガーします。 – miho

答えて

1

複数の人が同じ質問をしています。私はあなたが探しているものを正確にする方法を見つけることができないようです。別の方法として、チェックボックスの値をチェックするのではなく、自分自身で送信する方法があります。

$input = ['features' => [1,2]]; 

$this->visit('/foo/bar') 
    ->submitForm('MyForm', $input); 
+0

これはおそらく最も理にかなっています。 PHPテストが行​​われる限り、DOMの状態ではなく、入力を考慮する必要があります。つまり、動作するはずの '' tick() ''メソッドがあります。 –

関連する問題