在功能测试中不能 select 选项值

Cannot select option value in functional test

表格包含 select 种族选项:

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);

和returns

InvalidArgumentException: Input "household[members][0][ethnicity]" cannot take "6" as a value (possible values: ).

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

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

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

性别和种族字段之间的唯一区别是性别是一个明确的选择字段,种族是一个实体字段。

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

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

InvalidArgumentException: Input "household[members][0][ethnicity]" cannot take "6" as a value (possible values: ).

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