我们的项目中有很多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
答案 0 :(得分:2)
通常,如果用户可以区分,那么自动化应该能够做到这一点。
使用您的自动化工具查找能够显示您所处的环境的内容。例如,如果您有两个屏幕,一个用于"联系人"一个用于"员工数据",查找该文本,您就知道自己在哪个屏幕上。或者,您可以查看URL,或者包含自动化工具将找到的特定隐藏标识符。
这类似于" IsPurchased()"步骤here(我使用的是DSL而不是JBehave,它是C#,但原理是相同的)。如果您实际look at the code for that step,我们会看到我要查找付款类型,如果没有选择有效的付款类型,那么我选择一个。
在您的情况下,您的上下文比单选按钮大一点;它是一整页。我建议你分开"联系人"来自"员工数据"的步骤步骤,并从"共享"步骤,并调用适合您的背景的任何一个。