编写/组织JBehave故事的好习惯是什么?

时间:2013-07-18 09:51:20

标签: java selenium bdd jbehave

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

When saves data

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

When saves Employee data
When clicks Save button and confirms save

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

其他信息:现在测试按文件夹组织,类似于此处建议:Organising JBehave stories,但它们被设置为一个。安装程序非常类似于:http://jbehave.org/reference/stable/developing-stories.html#configuring

1 个答案:

答案 0 :(得分:2)

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

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

这类似于" IsPurchased()"步骤here(我使用的是DSL而不是JBehave,它是C#,但原理是相同的)。如果您实际look at the code for that step,我们会看到我要查找付款类型,如果没有选择有效的付款类型,那么我选择一个。

在您的情况下,您的上下文比单选按钮大一点;它是一整页。我建议你分开"联系人"来自"员工数据"的步骤步骤,并从"共享"步骤,并调用适合您的背景的任何一个。