Cucumber:编写在不同功能集之间共享的 Cucumber 步骤的最佳实践?

Cucumber: Best practice for writing cucumber steps that are shared among different feature sets?

我是 Cucumber 作为测试套件的新手。我在构建功能和编写步骤时注意到这一点。可以说是一个不好的例子(因为我在倒退)我写了一堆东西来创建需要用户的帖子。

我最终在主要致力于 Post 功能的功能集中编写了一堆基于用户的步骤(登录过程等)。

随着测试变得更加复杂和功能被添加,稍后将步骤移动到适当的功能集中是否是最佳实践?

这里有两部分要考虑。

  • 组织场景,使它们有意义。那就是将它们放在适当的 feature 文件中。
  • 组织步骤的实施,使它们有意义。也就是说,在正确的源代码文件中实施这些步骤。

您的问题归结为 "What makes sense in my context?"。

这取决于您的利益相关者,他们是希望所有面向用户的场景都在同一个功能文件中,还是他们对有时涉及用户的面向业务的场景更感兴趣?组织场景,让利益相关者满意。

那应该怎么组织步骤呢?这取决于您的开发人员以及您在不同源代码文件中实现的步骤定义之间共享状态的能力。

我的方法可能是从小处着手,然后让套件发展壮大。这最初不涉及在运行时在不同 类 之间共享状态。当套房感觉太大而无法处理时,请将其分成尽可能连贯的两部分。当它变大时,再次重复除法。希望您最终会得到适合您的环境的东西。

请记住,您的背景和产品是独一无二的。它可能值得您的团队认为他们可以维护的独特解决方案。

可理解性和可维护性是最重要的 属性 关于您正在构建的可执行规范,我能想到。