在代码验收测试中,如何为许多不同的输入集运行/编写相同的测试用例。
这是我的样本验收测试(我正在使用页面对象oncept)
loginCept.php代码
$I = new AcceptanceTester($scenario);
$I->wantTo('perform actions and see result');
$I->login($I,$m);
Acceptance.php文件
class Acceptance extends \Codeception\Module
{
public function login($I)
{
$I->amOnPage(login::$loginIndex);
$I->wait(2);
$I->fillField(login::$userName,"test@gmail.com");
$I->fillField(login::$password,"test");
$I->click(login::$submitButton);
$I->see(login::$assertionWelcome);
$I->wait(2);
$I->click(login::$logoutLink);
}
}
如何在验收测试中使用多组输入运行相同的登录。
但是,我尝试通过将数组值作为输入参数调用for循环中的测试用例来传递数组中的输入。在acceptance.php中,可以使用if循环传递多组输入。
这将测试仅作为具有不同断言的1个测试用例运行。 但是,它运行测试用例,直到任何输入/断言失败。如果任何断言都失败了,那么测试用例就会停止执行。说测试用例失败了。
答案 0 :(得分:0)
您可以将参数传递到登录功能,就像使用任何php函数一样:
loginCept.php代码
$I = new AcceptanceTester($scenario);
$I->wantTo('perform actions and see result');
$I->login($I,"test@gmail.com","test");
Acceptance.php文件
class Acceptance extends \Codeception\Module
{
public function login($I,$username,$password)
{
$I->amOnPage(login::$loginIndex);
$I->wait(2);
$I->fillField(login::$userName,$username);
$I->fillField(login::$password,$password);
$I->click(login::$submitButton);
$I->see(login::$assertionWelcome);
$I->wait(2);
$I->click(login::$logoutLink);
}
}
然后,您希望为要测试的每个登录方面创建一个单独的cept。
修改强>
您正在寻找与通过多个断言运行的一个测试相关的内容,这打破了自动化测试的惯例。每个测试(或在这种情况下都是cept)应该只测试一个方面。例如,在登录时,您可能有一个用于无效的用户名,无效的密码,太多的尝试等等......然后当/如果一个测试失败,您作为开发人员确切地知道哪个方面失败并且哪个方面继续通过。如果所有方面都包含在一个测试中,那么在开始调试之前,您作为开发人员并不了解全貌。