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

时间:2017-04-11 09:33:03

标签: php bdd functional-testing codeception gherkin

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

  

“我在数据库中有一些东西”

在我的步骤文件夹中,我已经在 example1.php 文件中执行了该步骤。

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

但这是推荐的吗?在另一个测试的类中实现一个测试的步骤?看起来好像打破了测试组隔离......

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

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

1 个答案:

答案 0 :(得分:0)

同一步骤可以有两个实现吗?在其他类型的黄瓜,你会打赌一个模糊的步骤错误。该工具不知道要使用哪种实现。

如果可以使用两个实现,那么我不会担心执行某个步骤的文件是什么。我更担心在两个地方实现相同的实现。

我更担心两个实现的原因是没有好的方法可以知道它们在维护期间不会偏离。如果他们偏离,那么你最终会遇到Gherkin中同一步骤意味着两件不同的事情。那会很糟糕。