我注意到,每当运行 Cest 类型的测试用例时,它们会在完成后保留其会话。换句话说,其他测试可以继续从那里停止测试的地方。例如:
class CheckGoogleSearch{
public function checkIfPageIsAccessible(AcceptanceTester $I){
$I->amOnPage('/');
$I->see('something..');
}
public function checkIfSearchFieldIsAccessible(AcceptanceTester $I){
// Notice, that it is assumed that we are on the google's home page,
//because the above test had it already opened in the past
$I->see('Google Search');
}
}
此代码可以被视为最佳做法吗?或者将来是否容易出错?在每次测试之前重置到Google的主页(并做一些额外的准备工作)会更好吗?
答案 0 :(得分:0)
您可以使用
@depends
注释。这样,如果您的第一次测试失败,将跳过依赖于前一次测试的下一个测试,并且不会报告失败。
class CheckGoogleSearch{
public function checkIfPageIsAccessible(AcceptanceTester $I){
$I->amOnPage('/');
$I->see('something..');
}
/**
* @param AcceptanceTester $I
* @depends login
*/
public function checkIfSearchFieldIsAccessible(AcceptanceTester $I){
// Notice, that it is assumed that we are on the google's home page,
//because the above test had it already opened in the past
$I->see('Google Search');
}
}
Personnaly我认为这不是好的或坏的做法。这取决于您的测试堆栈。 在您的示例中,如果您只有代码,并且没有其他集成需要更精细的细节,那么就像在测试ID上一样好,但我的情况下我有一个Testlink与测试用例集成
希望这有帮助。
快乐测试!!