Java黄瓜:许多功能中的相同背景

时间:2016-10-31 09:54:47

标签: java cucumber

我能做一个超级"特征? 多个功能使用相同的背景步骤,我可以在不同的文件中创建它们并运行文件吗?

2 个答案:

答案 0 :(得分:0)

没有“超级功能文件”的概念,您可以在其中提及可以在其他功能文件中使用的后台步骤。在Ruby中,您可以从另一个场景调用步骤,但Java不支持它。

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

这样做的一大缺点是任何功能文件中都不再显示这些步骤。你必须进入代码才能找到它,特别是如果你有不熟悉的人或访问你的代码正在编写方案的问题。如果后台步骤是技术设置等,猜猜你可以使用它。

答案 1 :(得分:0)

假设您有一个想要分享的背景,其外观类似于

using System.Numerics;

...

BigInteger value = BigInteger.Parse("111111111111111111111111111111111"); 

// 111111111111111111111111111111111
Console.WriteLine(value.ToString());

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

现在我们可以做到

Background: 
  Given foo
  And bar
  And baz
  ...

并实现(理想情况下使用辅助方法)

Background:
  Given wibble

在执行此操作时,您发现了对您来说很重要的内容(wibble)。你也解决了你的问题,创造了一些可以在更复杂的背景下使用的东西,例如。

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

没有超级功能的原因'是因为没有必要:)