在多个codeception功能测试中使用相同的小黄瓜步骤



假设我在example1.feature中有一个功能测试场景,它有一个类似

"我在数据库中有东西">

在我的步骤文件夹中,我在文件example1.php中实现了该步骤。

现在假设我想在example2.feature中使用相同的步骤。我知道如果我没有在example2.php中实现该步骤,它将自动使用 example1.php 中的实现。

但是,这是推荐的吗? 在另一个测试的类中实现一个测试的步骤?这似乎会打破测试组的隔离...

还是我应该将代码复制/粘贴到example2 中.php以便每个测试都有自己的步骤实现?看起来很不干燥,是维护的噩梦...

或者是否有另一种推荐的方法来处理这种情况,也许让所有步骤类扩展一个公共类,该类定义要在多个测试中使用的步骤?

同一步骤是否可以有两个实现?在其他口味的黄瓜中,你会打赌一个模棱两可的步骤错误。该工具不知道要使用哪种实现。

如果两个实现是可能的,那么我不会担心实现步骤是哪个文件。我会更担心在两个地方有相同的实现。

我更担心两种实现的原因是,没有好方法可以知道它们在维护过程中不会偏离。如果它们偏离,那么你最终会陷入这样的境地:小黄瓜的同一步骤意味着两件不同的事情。那会很糟糕。

最新更新