我有一个javascript警告,上面写着“该回合已关闭”。或者“回合已关闭。你不能做这个动作。”
我现在在PHPUnit中的代码是:
$this->waitForAlertPresent('The round is closed.');
如果警报是“圆形已关闭”,则测试通过,但如果警报为“圆形已关闭。您无法执行此操作”。它失败了。
是否可以使用waitForAlertPresent的正则表达式?在PHPUnit?
我以为我可以尝试waitForCondition并执行preg_match,但我认为它不起作用,因为它会弹出警报
答案 0 :(得分:1)
为什么你不知道警报中的文字应该是什么?通常你应该测试你设置的是什么。如果它不相同,则测试失败。
除此之外,还有......
$this->assertEquals('The round is closed.', $this->getAlert());
......应该适合你。你找到SeleniumTestCaseTest了吗?它非常简单地展示了PHPUnit_Selenium的可能性。
根据我自己的经验Selenium2TestCase(使用Selenium webdriver而不是注入javascript)似乎更加一致,或许值得一试。
修改强>
我对Selenium RC / SeleniumTestCase不太熟悉,但$this->getAlert()
应该为您提供警报框的文本。那么它当然就像$this->assertContains("closed", $this->getAlert())
一样简单。
但也许最好在更改警报消息时更新测试...