У меня есть большой (1000+ строк) класс FeatureContext, и я хочу разбить этот файл на несколько логических частей. Но я не знаю, как создавать свои собственные классы в Бехате. Я читаю документы http://docs.behat.org/en/v2.5/guides/4.context.html, но я не понимаю. А в примере docs FeatureContext расширяет BehatContext, но мне нужно, чтобы FeatureContext расширяет MinkContext, потому что Mink не работает без него. Если вы можете написать пример моего собственного класса с функцией, которые используют норок и показать мне, как использовать этот класс в FeatureContext, что было бы здоровоКак я могу использовать свои классы в Behat + Mink?
0
A
ответ
0
Я только что нашел правильный способ использовать подконтексты (классы) в Behat с норок http://blog.scur.pl/2012/06/subcontexts-behat-mink/ Надеюсь, что это поможет кому-нибудь
0
Эта конфигурация должна добиться того, что вам нужно
файл: behat.yml
default:
suites:
yourCustomSuite:
paths:
- %paths.base%/src/your/bundle/name/Features/YourSuiteName
contexts:
- YourBundleName\Contexts\YourContextName
файл: YourBundleName\Contexts\YourContextName.php
class YourContextName extends FeatureContext
{
}
и пусть FeatureContext
продлить \Behat\MinkExtension\Context\MinkContext
0
Посмотрите на PageObjectExtension.
Page object pattern - это способ сохранения ваших файлов контекста, отделяя знания пользовательского интерфейса от действий и утверждений.
Я использовал PageObjectsExtension в моем проекте, и мои контексты выглядеть как это:
/**
* @When /^I order products by "([^"]*)"$/
*
* @param $order
*/
public function orderProductsBy($order)
{
$this->getPage("Catalog")->orderProductsBy($order);
}
Настройка расширения на behat.yml
SensioLabs\Behat\PageObjectExtension:
namespaces:
page: [NS1\Features\Page, NS2\Features\Page]
element: [NS1\Features\Page\Element, NS2\Features\Page\Element]
Если вам нужно несколько Contexts
, вы можете добавьте его в свой behat.yml
default:
suites:
selenium:
mink_session: selenium
mink_javascript_session: selenium
contexts:
- Namespace\FeatureContext
- Namespace\CatalogContext
- Namespace\CheckoutFinishContext
- Namespace\CheckoutIndexContext
- Namespace\HomeContext
- Namespace\ProductDetailsContext
- Namespace\CartContext
- Namespace\CustomerAccountContext
- Namespace\CustomerLoginContext
- Namespace\FilterContext
- Namespace\TelesalesContext
- Namespace\HelpdeskContext
- Namespace\FaqContext
- Namespace\BrandContext
Смежные вопросы
- 1. Как я могу указать заказ в тестах mink/behat?
- 2. Behat/Mink: как я могу оценить xml-ответ
- 3. Zombie.js с Behat и Mink
- 4. Behat/Mink and Select2 combo
- 5. Zombie.js Mink Behat не работает
- 6. behat/mink: using phpunit mock в контексте
- 7. Стратегия Behat/Mink для тестирования с контекстами
- 8. Behat/Mink Открывает пустую страницу в браузере
- 9. Behat-Mink, заставить драйвер Selenium использовать Chrome вместо Firefox
- 10. Behat + mink + Selenium2 Получить текущее имя браузера
- 11. Элемент Behat/Mink/Selenium2 не отображается
- 12. Невозможно перейти по ссылке | Behat/Mink
- 13. Mink + Behat - установка значения для недопустимого значения
- 14. Mink/behat iframe без id/name
- 15. Как я могу загрузить свои java-классы в javascript?
- 16. Невозможно использовать Zombie JS с Behat
- 17. Загрузка файла с помощью Behat, Mink & PhantomJS
- 18. Невозможно нажать кнопку отправки. Behat/Mink
- 19. Как я могу получить доступ к переменной php $ _SESSION в Mink (Behat)?
- 20. Экземпляр Mink не задан в классе контекста Mink. Включили ли вы расширение Mink? (RuntimeException)
- 21. Как найти поле Symfony 2 в Behat/Mink
- 22. Как утверждать заголовок страницы/вкладки/окна в Behat + Mink
- 23. Как (где) определить шаг функции в Behat/Mink
- 24. Как отключить сеанс сброса между сценариями в Behat Mink?
- 25. Сбросить сеанс между сценариями в Behat Mink. Как отключить?
- 26. Как получить доступ к атрибуту onClick в behat + mink?
- 27. Могу ли я добавить свои собственные классы в структуру сущностей?
- 28. Как я могу сделать свои классы более независимыми от платформы?
- 29. Behat/Mink Невозможно имитировать нажатие кнопки в нижнем колонтитуле
- 30. symfony2/behat/mink проблемы с подключением при тестировании в браузере