2017-06-11 148 views
0

我正在使用java中的黄瓜黄瓜。根据我们的要求,我需要在我的功能文件中重复使用跨场景的步骤。例如,我在我的功能文件中有两个以下的方案。重复使用黄瓜黄瓜中的步骤名称

方案:查看项目

  • 鉴于用户登录时所用的有效凭证
  • 当有名称的项目用户搜索
  • 然后项目在摘要中
  • 和项目的价格是可见给用户

场景:编辑项目

  • 鉴于用户登录时所用的有效凭证
  • 当用户搜索一个项目名称为
  • ,并选择一个项目进行编辑
  • 然后项目变成可编辑的用户
  • 和项目价格是对用户可见

这里,步骤,“与名称的项目用户搜索”,“商品价格是对用户可见的”是重复这是我的测试非常有效。 但这不被黄瓜黄瓜所接受。它说错误,它迫使我使用步骤的唯一名称。 无论如何,我可以在各个场景中重复使用同一个功能文件中的步骤吗?

一种解决方法是 - 我需要在不同的功能文件中定义这两种方案,并且需要使用cucumber的胶水功能将每个功能文件与单独的java包关联以便进行步骤定义(注意:我只能粘贴java包到一个功能,而不是一个类)。

所以,目前我正在定义N个功能文件(每个场景都有单独的功能文件)以及相同数量的java软件包。 这使得我的测试代码库过大,很快我可能会遇到可维护性问题。

+1

步骤“物品价格对用户是否可见”在两种情况下都采取相同的操作?你在问什么是黄瓜的正常行为。您可以在同一要素文件或不同要素文件中的多个场景中重复使用相同的步骤。你想为两个不同的步骤定义保持同名吗? – Murthi

回答

1

需要时写出重复步骤。重复的步骤有时需要能够创建对您的利益相关者有趣且相关的小黄瓜。但是,请立即在步骤中委派一个辅助方法。你的步骤应该是单线。

您需要的常见行为是在帮助器方法中实现的,并且您考虑的重复会减少。它可能会减少很多以至于消失。

1

您绝对可以在单个功能文件中使用重复步骤作为不同场景的一部分。而且,在黄瓜黄瓜中只有单个JAVA代码需要重复步骤。

此外,对于作为单个功能文件的一部分的常用步骤,您也可以使用Background关键字,并且在每个场景执行之前执行它。 例子:

  • 背景:
  • 鉴于用户登录时所用的有效凭证
  • 当用户搜索一个项目名称为

并保留所有场景有点轻。

  • 方案:查看项目
  • 然后项目在摘要中
  • 和项目的价格是用户

与其他方案可见:

  • 方案:编辑项目
  • 并选择编辑项目
  • 然后项目变成可编辑的用户
  • 和项目的价格是用户

我希望它可以帮助可见。