当使用Codeception验收测试时,我意识到最好的方法是在每次测试之前清理数据库,并使每个测试独立。
但是一些Cest考试是相互依赖的。所以如果我写:
/**
* @depends createObjectBase
* @___skip
*/
public function createObjectMore(AcceptanceTester $I)
{由于清理,在数据库中通过createObjectBase测试创建的数据已经消失。但这些数据是createObjectMore测试所必需的。
我不能将它们组合到一个测试中,因为实际上有多个区域具有非常不同的测试,所以createObjectMore在这里只是一个占位符。
那么处理这个问题的最好方法是什么呢?
发布于 2018-01-03 16:30:04
也许依赖于createObjectBase的cest可以扩展抽象(cest?)类将该方法作为受保护的方法,然后在子Cest中使用@before createObjectbase注释,使其在需要该数据的每个方法之前执行。基本上,你每次都要这样做,因为数据不会跨测试持久化。
摘自docs
你可以用@
和@after注解来控制执行流程。您可以将常见操作移动到受保护的(非测试)方法中,并通过将它们放入注释中来在测试方法之前或之后调用它们。可以通过使用多个@before或@after注释来调用多个方法。方法按从上到下的顺序调用。
https://stackoverflow.com/questions/48008922
复制相似问题