Php Laravel测试:检查页面上是否存在具有特定值的无线电输入

Php Laravel测试:检查页面上是否存在具有特定值的无线电输入,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,所以我在为一个客户端开发的应用程序编写一些集成测试。他们有一个设计人员将处理HTML,因此我们的测试包括检查链接是否存在,检查广播组是否具有我们期望的所有值等(这是为了在设计人员给我们编辑后,我们可以通过测试确保他没有错误地更改一些他不应该更改的内容) 假设我们有一个关于性别的无线电输入,我们想检查输入值男性和女性是否存在,所以我自然而然地写了如下内容: $this->visit('/auth/register') ->select('male', 'sex'); …如果没

所以我在为一个客户端开发的应用程序编写一些集成测试。他们有一个设计人员将处理HTML,因此我们的测试包括检查链接是否存在,检查广播组是否具有我们期望的所有值等(这是为了在设计人员给我们编辑后,我们可以通过测试确保他没有错误地更改一些他不应该更改的内容)

假设我们有一个关于性别的无线电输入,我们想检查输入值男性和女性是否存在,所以我自然而然地写了如下内容:

$this->visit('/auth/register')
    ->select('male', 'sex');
…如果没有一个名为“sex”且值为“male”的无线电输入,则预期此操作将失败。因此,看看Laravel源代码,我发现这不是->select()背后的原理,它只是将一个值存储到一些内部
$inputs
变量,这意味着这也会失败:

$this->visit('/auth/register')
    ->select('male', 'sex');
    ->seeIsSelected('sex', 'male');
问题是有没有一种方法可以使用内置的功能来运行这样的测试,我想可以达到
->select($value,$option)
的预期用途,如果视图中没有收音机或带有$value和$option组合的select输入,它将失败


PS:我知道,并且作为最后的手段,
->see(“type='radio'value='male')
方法在默认断言中似乎没有办法做到这一点。最接近的功能是
seeInField()
&
seeIsSelected()
,但它们并没有完全实现我想要的功能。一个解决方案(可根据您的喜好进行编辑)是:

$this->assertCount(1,$this->visit('/auth/register'))
->爬虫->过滤器('input[name=“sex”][value=“female”]');

另一个解决方案是像Joshua Pendo建议的那样的自定义断言。

您想使用什么?并且“see”正在做您想要做的事情吗?我认为如果
see()
不好,您就需要一个自定义函数来实现这一点,因为您是对的。最终实现了一些自定义的东西,但内置的可以接近(如果你能在下面的答案中找到答案)谢谢!