2017-07-17 2 views
1

私のフォームには、いくつかの選択肢があり、すべて同じ名前ですが、異なるIDがあります。laravelのselect idを使用した機能テスト5.4

<form method="POST" action="/" 
      accept-charset="UTF-8"> 
     <select name="directElimination_fighters[]" class=directElimination_select id="1_1"> 
      <option selected></option> 
      <option value="1639"> Esteban Prohaska </option> 
      <option value="1640"> Vicenta Walsh </option> 
     </select> 
     <select name="directElimination_fighters[]" class=directElimination_select id="1_2"> 
      <option selected></option> 
      <option value="1639"> Esteban Prohaska </option> 
      <option value="1640"> Vicenta Walsh </option> 
     </select> 

     <button type="submit" class="btn btn-success" id="update"> 
      Update 
     </button> 
    </form> 

私は私の機能テストを作ってるんだ、私が行います

$this->visit('/') 
     ->select('Esteban Prohaska', '1_2') 
     ->press('update'); 

しかし、PHPUnitのは言う:私は->dump()を追加すると

InvalidArgumentException: Unreachable field "1_2" 

、私はHTMLで見ることができるのid = "1_2"フィールド。だから私のコードに間違っているのですか?

答えて

1

に変更し、それを:そのため申し訳ありません

->select('#1_2', '1639') 
+1

おかげで、それが働きました...! –

+0

@JuliatzindelToroはうれしかったです。 ) –

+0

Docsは反対です...最初のフィールドは値でなければなりません.... https://laravel.com/docs/5.1/testing#interacting-with-your-application –

1

# - #1_2です。 CSSのように、識別子は#で始まります。

$this->visit('/') 
    ->select('#1_2', 'Esteban Prohaska') 
    ->press('update'); 

デフォルトでは、Laravelは入力の名前として->select()の最初のパラメータを扱います。

関連する問題