2

我们的项目中有很多 JBehave 故事(Java、Selenium)。有时,不同故事中的步骤在语法上是相同的,但背后的逻辑却不同。例如步骤:

When saves data

在一个故事中意味着只需单击“保存”按钮,但在另一种情况下需要更复杂的行为。可以在故事中以不同方式定义这些步骤,例如:

When saves Employee data
When clicks Save button and confirms save

但是在大项目中有很多故事,很难编辑这样的故事。有时商界人士也反对这种故事修改。您能否在此类情况下建议一些最佳实践或代码示例?可能在技术上可以定义测试范围 - 就像这些将是员工屏幕的故事和方法,但这些是用于项目屏幕的?或者还有其他一些想法如何处理这个问题?

附加信息:现在测试被组织在文件夹中,就像这里建议的那样:Organizing JBehave stories,但它们被设置视为一个。设置与这些非常相似:http: //jbehave.org/reference/stable/developing-stories.html#configuring

4

1 回答 1

2

通常,如果用户可以分辨出差异,那么自动化应该能够做到这一点。

使用您的自动化工具查找可以显示您所处环境的内容。例如,如果您有两个屏幕,一个用于“联系人”,一个用于“员工数据”,查找该文本,您就会知道你在哪个屏幕上。或者,您可以查看 URL,或包含自动化工具将找到的特定隐藏标识符。

这类似于此处的“IsPurchased()”步骤(我使用的是 DSL 而不是 JBehave,它是 C#,但原理相同)。如果您实际查看该步骤的代码,您会看到我在寻找一种付款类型,如果没有选择有效的付款类型,那么我选择一种。

在您的情况下,您的上下文比单选按钮大一点;这是一整页。我建议您将“联系人”步骤与“员工数据”步骤和“共享”步骤分开,并调用适合您的上下文的任何一个。

于 2013-07-18T13:32:07.410 回答