Java cucumber:在许多特性上具有相同的背景



我可以做一个"超级"功能吗?多个功能使用相同的后台步骤,我可以使他们在不同的文件,而不是运行文件?

没有"超级功能文件"的概念,你可以在其他功能文件中提到背景步骤。在Ruby中,您可以从其他场景调用步骤,但在Java中不支持。

您可以通过使用带有标记的Before钩子来实现您的目标。在这个before hook方法中,您可以编写可重用的代码。请记住在所需的场景中添加相同的标签,并在黄瓜选项中使用标签运行测试。

这样做的一大缺点是步骤不再在任何特性文件中可见。您必须深入代码才能找到它,如果您有不熟悉或不访问您的代码的编写场景的人员,这尤其成问题。如果背景步骤是技术设置等,可以使用它

假设你有一个想要共享的背景,它看起来像

Background: 
  Given foo
  And bar
  And baz
  ...

他们分享这个的方式是把它变成一个命名问题。我们所需要做的就是给整个背景一个单一的名字。在这个愚蠢的例子中,我们使用'wibble'

现在我们可以直接写

Background:
  Given wibble

并将其实现(理想情况下使用helper方法)为

Given 'wibble' do
  foo
  bar
  baz
  ...
end

在这样做的过程中,你已经发现了一些对你的领域(wibble)很重要的东西。你也解决了你的问题,并创造了一些可以在更复杂的背景中使用的东西,例如

Background:
  Given wibble
  And wobble

没有"超级特性"的原因是不需要它:)

最新更新