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(挿入されたjavascriptの代わりにSelenium Webdriverを使用)はより一貫しているようで、おそらく試してみる価値があります。

編集 私はSeleniumRC/ SeleniumTestCaseにあまり詳しくあり$this->getAlert()ませんが、アラートボックスのテキストを提供する必要があります。そうすれば、もちろんそれはと同じくらい簡単でしょう$this->assertContains("closed", $this->getAlert())

ただし、アラートメッセージを変更する場合は、テストも更新することをお勧めします...

于 2013-03-04T19:18:51.820 に答える