espend/behat-placeholder-extension
最新稳定版本:1.2
Composer 安装命令:
composer require espend/behat-placeholder-extension
包简介
Behat placeholder extension
README 文档
README
Problem to solve
If you test your application with external service you run into problems of non unique user input. For example registering a user with same email will fail as there is already a user inside your database with this email address.
Scenario: Register a new user Given I fill in "email" with "foo@exmaple.com" And I fill in "password" with "my_scret" And I press "Register Now" Then I should see "foo@exmaple.com" in the ".account-user" element Scenario: Register a new user Given set a random mail in "%email%" placeholder And set a random password in "%password%" placeholder And I fill in "email" with "%email%" And I fill in "password" with "%password%" And I press "Register Now" Then I should see "%email%" in the ".account-user" element Then I should see "Hello %email%" in the ".account-user" element Also extracting an given value of newly generate user is possible.
Scenario: Register a new user and check id [...] When set placeholder "%user_id%" of "id" on Doctrine model "AppBundle:User" with "email" equals "%email%" Then print placeholder value of "%user_id%" Then I should see "%user_id%" in the ".account-user-id" element All placeholder are compatible with foreign Context arguments.
Installation
$ composer require espend/behat-placeholder-extension
# behat.yaml default: suites: default: contexts: - espend\Behat\PlaceholderExtension\Context\PlaceholderContext extensions: espend\Behat\PlaceholderExtension\PlaceholderExtension: ~
Feature Steps
All placeholder are valid per Scenario scope. They are cleaned before and after every Scenario.
Given set a placeholder "%foobar%" with value "my_foobar" Given set a random mail in "%mail%" placeholder Given set a random password in "%password%" placeholder Given set a random text with length "15" in "%text%" placeholder Given set current date as "Y-m-d" format in "%date%" placeholder Given print placeholder value of "%date%" Given print all placeholder values Doctrine
To interact with the underlying Database there also some Doctrine steps. They only work on a Test Suite / Extension using Behat\Symfony2Extension
Given set placeholder "%foobar%" of "id" on Doctrine model "AppBundle:Car" with "name" equals "bmw" Given set placeholder "%foobar%" of "id" on Doctrine model "AppBundle\Entity\Car" with "name" equals "bmw" # behat.yaml default: suites: default: contexts: - espend\Behat\PlaceholderExtension\Context\DoctrinePlaceholderContext extensions: # [...] Behat\Symfony2Extension: ~ Behat\MinkExtension: sessions: default: symfony2: ~
# composer.json "behat/mink-extension": "*", "behat/symfony2-extension": "*", Placeholder Context Injection
If you want access to placeholders in you custom Context you implement the espend\Behat\PlaceholderExtension\Context\PlaceholderBagAwareContextInterface Interface See PlaceholderContext for a full working example
class PlaceholderContext implements Context, PlaceholderBagAwareContext {} TODOs
- Pipe placeholder arguments for console command:
bin/behat --placeholder="%foobar%=foo" - More Doctrine related steps
- More Placeholder specific steps
统计信息
- 总下载量: 138.53k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04