【问题标题】:Codeception cleanup vs. dependsCodeception 清理与依赖
【发布时间】:2018-06-09 02:05:10
【问题描述】:

在使用 Codeception 验收测试时,我意识到最好的方法是在每次测试之前清理数据库并使每个测试独立。

但是一些 Cest 测试相互依赖。所以如果我写:

/**
 * @depends createObjectBase
 * @___skip     
 */   
 public function createObjectMore(AcceptanceTester $I)
 {

createObjectBase 测试在数据库中创建的数据由于清理而消失了。但是createObjectMore 测试需要这些数据。

我不能将它们组合成一个测试,因为实际上有多个区域的测试非常不同,所以createObjectMore 在这里只是一个占位符。

那么最好的处理方法是什么?

【问题讨论】:

    标签: php testing codeception


    【解决方案1】:

    也许依赖于createObjectBase 的 Cest 可以扩展一个抽象(cest?)类,该类将该方法作为受保护的方法,然后在子 Cest 中使用 @before createObjectbase 注释使其在每个需要该数据的方法之前执行。基本上,您必须每次都这样做,因为数据不会在测试中保留。

    摘自docs:

    您可以使用@before 和@after 注释控制执行流程。 您可以将常见操作移动到受保护(非测试)方法中,并且 通过将它们放入测试方法之前或之后调用它们 注释。可以通过使用更多来调用多个方法 比一个 @before 或 @after 注释。方法按顺序调用 从上到下。

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 2021-05-31
      • 2017-11-18
      相关资源
      最近更新 更多