0

我有一个 JavaScript 警报,上面写着“该回合已结束”。或“回合结束。您不能执行此操作。”

我现在在 PHPUnit 中的代码是:

$this->waitForAlertPresent('The round is closed.');

如果警报为“回合已结束。”则测试通过,但如果警报为“回合已结束。您不能执行此操作。” 它失败。

是否可以对 waitForAlertPresent 使用正则表达式?在 PHPUnit 中?

我在想我可以尝试waitForCondition并做preg_match,但我认为它不起作用,因为它会弹出一个警报

4

1 回答 1

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()).

但是,当您更改警报消息时,也许最好也更新您的测试......

于 2013-03-04T19:18:51.820 回答