这是我第一次吃黄瓜,所以也许我问的没错,但似乎有更好的方法:
所以现在我通过一个类似于调查的网站,这是我第一次用黄瓜完成自动化任务。它工作得很好,但就像大多数调查一样,他们的调查也有很多“填表,然后点击下一步”。
因此,在我的特写文件中,我有很多:
Then I will click 'Next'
它与步骤匹配(因为按钮都有相同的文本):
Then(/^I will click 'Next'$/) do
click_button('Next')
end
因此,这一步定义就像我的特性file...which中的8-9行--我想这是可以的,但是我的特性文件只是looks...ugly?我一点也不习惯Gherkin语言,因为这是我第一次,但它基本上变成了很多:
THEN SELECT THAT THING FROM DROPDOWN
THEN CLICK THIS RADIO BUTTON
THEN SELECT THIS BUTTON
THEN CLICK NEXT
就像一遍又一遍.我的意思是它是人类可读的,但它只是看起来凌乱?是这样吗?
我也不太确定什么时候我应该在我的特性文件中使用“解释”?就像我应该解释说,我会从下拉列表中选择'X‘(或者"X",不确定这是否重要)?或者单击“下一步”按钮或选择“是”单选按钮?
发布于 2015-10-05 09:14:48
您正在编写所谓的“命令式步骤”,这确实是一种错误的做法。
你的步骤应该是说“你在做什么”,而不是“怎么”你在做什么。
不知道您的表单的细节,让我们组成一个流程。第1页。名称第2页。人口统计资料第3页。最受欢迎的足球队第4页。最受欢迎的篮球队第5页。结果页显示他们的球队在其他调查对象中的受欢迎程度。
Given I enter the "Are you a Bandwagon Fan Survey"
When I enter my name
And I enter my demographics
And I choose a favorite football team
And I choose a favorite basketball team
Then I should be directed to the result page
And I should see my teams ranked on a graph
输入您的名字并单击next的详细信息应该隐藏在这个步骤中。一个尝试测试你的应用程序的人不在乎你的名字是什么,字段ID是什么或者类似的东西。他们只是想知道工作流程。
如果您正在执行一些方案以使名称页出错,则只需修改您的gherkin就可以这样说。
When I enter a name too long
Then I see a name too long error message
When I do not enter a name
Then I see a name missing error message
同样,您将太长的细节或错误消息留给步骤def (或以下),除非它对测试场景至关重要。我通常设置工厂女孩来处理我的数据,并且只使用场景的文本来提取当前的数据。因此,我将有一个错误消息工厂,其中一个"name_missing“和一个"name_too_long”子工厂提供正确的值。如果我需要改变或查找一些东西,一切都在同一个place...but中,最重要的是,它没有弄乱我的腹股沟。
发布于 2015-10-05 08:41:13
是的,我想你想要发送参数到步骤定义
Then I will click 'Next'
步骤定义将是
Then(/^I will click "([^"]*))*"$/) do |text|
click_button(text)
end
同样,上面也将为
Then I will click 'OK'
https://stackoverflow.com/questions/32953520
复制