如何在代码中编写正确的Cest格式测试?

时间:2015-12-30 10:27:19

标签: php automated-tests codeception acceptance-testing

我注意到,每当运行 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的主页(并做一些额外的准备工作)会更好吗?

1 个答案:

答案 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与测试用例集成

  1. 我可以打开/访问该页面吗
  2. 某些元素是否可用
  3. 我可以进行搜索并获得预期的结果吗
  4. 希望这有帮助。

    快乐测试!!