我正在为一个视图编写测试,我使用的是本机phpunit + laravel测试套件而没有任何第三方软件包,因为我认为它们符合我的需求。
我只有一个问题,基本上写在标题中,我如何测试< select>带有<选项已禁用的标签=" true" />?
这是刀片内的HTML。
< select name =" from [hour]" ID =" fromHour"类="形状控制">
<选项已禁用aria-disabled =" true"选择aria-selected =" true"> Hour< / option>
@for($ i = 1; $ i< = 24; ++ $ i)
< option value =" {{$ i}}" {{(旧(" from.hour")== $ i)? "选择" :"" }> {{$ i}}< / option>
@endfor
< /选择>
不要看造型,它只是一个假选择。现在我的测试套件使用经典的fillForm + select($ value,$ name)方法组合来填充整个表单,问题是如果我选择了<选项/>元素,测试将失败,因为它将坚持使用默认选项,但如果我删除<选项选择/>测试将从< select>中选择一个随机数。这是一个很好的和有意的元素。
这是涉及的代码
$ dumpResult = $ this-> visit(" foo / bar")
- > seeText("保存表单")
- >选择($ randomNumber,"来自[小时]")
- > fillForm("保存表单",[
"名称" =>厂::创建() - >名字,
"姓" =>厂::创建() - >姓氏,
]);
如果我得到dumpResult的结果,它会显示该范围内的任何随机数,这是预期的,因为没有任何默认选项,但是当存在默认选项时则不是这种情况。
我需要默认选项,并且我无法更改整个应用程序,因为测试套件无法获取< select>元件。我该怎么做才能解决这个问题?
谢谢。