The exozet/behat-utils provide some traits for easier testing of websites and web services using Behat and Mink.
$ composer require exozet/behat-utilsand add
use \Exozet\Behat\Utils\Base\JsonApiSteps;to your context, like this:
class ServiceContext extends \Behat\MinkExtension\Context\MinkContext
{
use \Exozet\Behat\Utils\Base\JsonApiSteps;
}That's it!
The JsonApiSteps are helpful for testing JSON APIs.
The WebsiteInteractionSteps simplify DOM-based interactions with websites.
The SpinnedMinkSteps allow calling default MinkContext steps while allowing a specified timeout.
The ConditionSteps offer steps that only continue the test execution under specific conditions, marking the tests as "Pending" otherwise.
The HelpUtils offer helper functions that can be useful for defining own steps.
If you want to develop on those utils, please use chromedriver and run it like this:
$ chromedriver --whitelisted-ips='*'Then use the embedded docker-compose.yml and run a php-cli like this:
$ docker-compose run --rm php-cli
www-data $ bash setup-dev.sh
www-data $ vendor/bin/behat -p local
www-data $ ./vendor/bin/phpunit --bootstrap vendor/autoload.php --testdox testsThe behat-utils is copyright by Exozet (http://exozet.com) and licensed under the terms of MIT License.