2013-06-15 4 views
2

Я использую Behat с Selenium2, и я хочу написать тест, чтобы проверить, сфокусировано ли поле или нет. Это мой эксперимент:Тест, если поле ввода сфокусировано или нет

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

Это идет alwais в зеленом. Также это:

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

Можно ли проверить с помощью Behat, если сфокусирован на textField или нет?

ответ

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

+0

Почему использование утверждений? – Polygnome

+1

Я предполагаю, что вы можете создать исключение на основе выражения if. Я нахожу утверждение более аккуратным по этому поводу. Возможно, из-за xUnit (: – ornous

Смежные вопросы