🍺 Extension adding variadic arguments support to Behat steps definitions
Adds variadic arguments support to Behat steps definitions.
Install it:
$ composer require friends-of-behat/variadic-extension --dev
Enable it in your Behat configuration:
# behat.yml
default:
# ...
extensions:
FriendsOfBehat\VariadicExtension: ~
You can use variadic arguments in steps definitions!
/**
* @Given the store has( also) :firstProductName and :secondProductName products
* @Given the store has( also) :firstProductName, :secondProductName and :thirdProductName products
* @Given the store has( also) :firstProductName, :secondProductName, :thirdProductName and :fourthProductName products
*/
public function theStoreHasProducts(...$productsNames)
{
foreach ($productsNames as $productName) {
$this->saveProduct($this->createProduct($productName));
}
}
/**
* @Given /^(this channel) has "([^"]+)", "([^"]+)", "([^"]+)" and "([^"]+)" products$/
*/
public function thisChannelHasProducts(ChannelInterface $channel, ...$productsNames)
{
foreach ($productsNames as $productName) {
$product = $this->createProduct($productName, 0, $channel);
$this->saveProduct($product);
}
}