Codeception清理与依赖

问题描述 投票:1回答:1

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

但是一些Cest测试依赖于彼此。所以,如果我写:

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

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

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

那么最好的办法是什么呢?

php testing codeception
1个回答
0
投票

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

摘自docs

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

© www.soinside.com 2019 - 2024. All rights reserved.