2

私は Selenium2 で Behat を使用しており、フィールドがフォーカスされているかどうかを確認するテストを作成したいと考えています。これは私の実験です:

/**
 * @Then /^I could see username focused$/
 */
public function iCouldSeeUsernameFocused()
{
    $this->getSession()->wait(1000, "$('#username').is(':focus') == true");
}

これは常に緑色になります。これも:

/**
 * @Then /^I could see username focused$/
 */
public function iCouldSeeUsernameFocused()
{
    $this->getSession()->wait(1000, "false");
}

textField がフォーカスされているかどうかを Behat でテストできますか?

4

1 に答える 1

2

あなたのステップは例外をスローしないので、実際には常に成功します。

また、待機は適切なオプションではありません。ここでは、待機するだけです。ここでわかるように、意味のある戻り値はありません: http://mink.behat.org/api/behat/mink/session.html#wait()

代わりに、phpunit アサートとセッションの evaluateScript メソッドを使用します。

assertTrue($this->getSession()->evaluateScript('// your jQuery here'));

ここで説明されているように、phpunit のアサーション関数を必ず含めてください: http://docs.behat.org/guides/2.definitions.html#failed-steps

于 2013-06-20T20:40:15.173 に答える