Прежде всего, процедура регистрации, вероятно, будет использоваться очень часто во время тестирования, поэтому я бы рекомендовал абстрагировать ее в класс-помощник.
<?php
// loginHelper.php
class loginHelper {
function login($username, $password, $I) {
$I->fillField('login_identity', $username);
$I->fillField('login_password', $password);
}
}
?>
Вы должны включить loginHelper в качестве модуля для того, чтобы в вашем acceptance.suite.yml и сохранить его в _helpers/директории. Теперь мы можем свободно использовать функцию входа в остальные наши приемочные тесты.
<?php
$I = new WebGuy($scenario);
$I->amOnPage('account/sign_in');
login('[email protected]', 'don', $I);
$I->click('submit');
$I->see('The Captcha Answer field is required.');
?>
Теперь, чтобы ответить на ваш вопрос, вы можете предотвратить имя пользователя и пароль которые зашиты в тестах, сохранив их в .yml файл в _data/директории. Используйте Yaml::parse(__DIR__ . '/../_data/login.yml')
, подавая содержимое в массив. Я бы предложил добавить парсер yaml в помощник, чтобы вы могли включить его во всем мире во всех своих тестах, а это значит, что вам нужно изменить имя пользователя и пароль в login.yml, чтобы изменить значения, используемые во всех ваших тестах. Таким образом, вы также можете иметь несколько имен пользователей и паролей, и вы скоро поймете, что данные для входа - это не единственные значения, которые вы можете сохранить.
это блестящее предложение, но некоторые, как я не знаю, как его реализовать @Tro, пожалуйста, помогите мне, так как я получил файл accept.suite.yml и два URL-адреса для работы в одном модуле env, он работает, когда i есть только один пользователь для двух разных URL-адресов, но проблема возникает, когда я должен запускать два разных URL-адреса для двух разных пользователей, тогда как я могу сказать, какие тесты изменил пользователь и теперь запускает url2 с user2 и url1 с user1. – shab