无法在功能测试中选择选项值

时间:2015-03-21 23:48:46

标签: php symfony functional-testing

表单包含种族选择选项:

Ethnicity: <select id="household_members_0_ethnicity" name="household[members][0][ethnicity]" class="smallform">
<option value=""></option>
<option value="2">AfrAm</option>
<option value="3">Asian</option>
<option value="1" selected="selected">Cau</option>
<option value="6">HaPI</option>
<option value="4">Hisp</option>
<option value="5">NtvAm</option>
<option value="7">Oth</option>
<option value="8">Unk</option>
</select>

功能测试包含 $form["household[members][0][ethnicity]"]->select(6);

并返回

  

InvalidArgumentException:输入&#34;家庭[成员] [0] [种族]&#34;   不能采取&#34; 6&#34;作为一个值(可能的值:)。

请注意,可能的值为空。我尝试使用select("6")select("HaPI")以及其他选项的组合进行测试,但都无济于事。

Fwiw,有一个类似的性别选择,$form["household[members][0][sex]"]->select('Male');不会抛出异常。

我还尝试以数组形式输入$form()值,但结果没有变化。

性别和种族领域之间的区别仅在于性别是一个明确的选择领域,种族是一个实体领域。

$form["household[members][0][ethnicity]"]->availableOptionValues();返回一个空数组;

$form["household[members][0][sex]"]->availableOptionValues();返回一组值和选项;

1 个答案:

答案 0 :(得分:0)

  

InvalidArgumentException:输入&#34;家庭[成员] [0] [种族]&#34;不能采取&#34; 6&#34;作为一个值(可能的值:)。

错误消息应显示可能的值列表,而不是(可能的值:) 。您必须检查在test环境中,此字段是否填充了ethnicity实体的记录。根据您的评论,您使用SQLite数据库,因此您必须检查数据夹具是否为ethnicity实体插入了一些数据。