Я думаю, вы что-то путаете, потому что то, что вы говорите, не имеет большого смысла. Если вам трудно выразить логику с помощью кода, вам следует задать конкретный вопрос по этому поводу.
Behat и Mink написаны на PHP, вы пишете свои контексты на PHP, существует огромное количество плагинов, облегчающих жизнь (также написанных на php). На самом деле, все ваши тесты выполняются на PHP, когда вы их запускаете… Ага!
Если вы хотите сравнить данные с двух страниц, вы можете просто создать такой шаг:
/**
* @Then /^the page "(.+)" and the page "(.+)" content should somehow compare$/
*/
public function assertPageContentCompares($page1, $page2)
{
$session = $this->getSession();
$session->visit($page1);
$page1contents = $session->getPage()->getHtml();
$session->visit($page2);
$page2contents = $session->getPage()->getHtml();
// Compare stuff…
}
Помимо очевидного, вы можете использовать PHPUnit вместе с Behat/Mink для создания утверждений, т. е. в определениях ваших шагов. Большинство (но не все) утверждений PHPUnit являются статическими методами, их использование так же просто:
PHPUnit_Framework_TestCase::assertSame("", "");
Вы можете использовать Selenium (возможно, и другие фреймворки) с PHPUnit, если речь идет больше о модульном тестировании, чем о функциональном тестировании, официальная документация рассказывает, как это сделать.
Если вы просто ненавидите Gherkin, то с Behat вы мало что можете сделать — это его суть. В PhpStorm 8 есть довольно хорошая поддержка, вы можете легко перемещаться по своему коду и быстро рефакторить его. Если это не поможет, есть еще одна отличная альтернатива Behat под названием Codeception, где вы используете чистый PHP для определения своих тестов. . Может быть, это то, что вы ищете.
person
Ian Bytchek
schedule
18.09.2014