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

Php 在多个codeception功能测试中使用相同的小黄瓜步骤,php,bdd,functional-testing,codeception,gherkin,Php,Bdd,Functional Testing,Codeception,Gherkin,假设我在示例1中有一个功能测试场景 “数据库里有东西” 在我的steps文件夹中,我在文件example1.php中得到了该步骤的实现 现在假设我想在示例2.feature中使用相同的步骤。我知道如果我不在example2.php中实现该步骤,它将自动使用example1.php中的实现 但这是建议吗?在另一个测试的类中为一个测试实现来自的步骤?这似乎会打破测试组的隔离 或者我应该将代码复制/粘贴到example2.php中,以便每个测试都有自己的步骤实现?看起来很不干燥,是一场维护噩梦 或者有

假设我在示例1中有一个功能测试场景

“数据库里有东西”

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

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

但这是建议吗?在另一个测试的类中为一个测试实现来自的步骤?这似乎会打破测试组的隔离

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


或者有没有其他建议的方法来处理这种情况,也许让所有的步骤类扩展一个公共类,该类定义了要在多个测试中使用的步骤?

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

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


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

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

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

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