Cucumber 在小黄瓜/Specflow-Given/When/Then语句中我应该使用什么人和语气?

Cucumber 在小黄瓜/Specflow-Given/When/Then语句中我应该使用什么人和语气?,cucumber,bdd,specflow,acceptance-testing,gherkin,Cucumber,Bdd,Specflow,Acceptance Testing,Gherkin,我对人们用小黄瓜语言来描述验收测试中执行的各种操作的方式有点困惑 在一些文章中,人们使用“I”,在一些文章中,人们使用“User” 反应(然后)语句的情况也是如此: Case 1 --> xyz page should be displayed Case 2 --> xyz page is displayed Ex 1: Given statement abc When user performs action A Then screen xyz should be display

我对人们用小黄瓜语言来描述验收测试中执行的各种操作的方式有点困惑

在一些文章中,人们使用“I”,在一些文章中,人们使用“User”

反应(
然后
)语句的情况也是如此:

Case 1 --> xyz page should be displayed
Case 2 --> xyz page is displayed

Ex 1:
Given statement abc
When user performs action A
Then screen xyz should be displayed

Ex 2:
Given statement abc
When I perform action A
Then screen xyz is displayed
写“用户”或“我”更好吗?写“应该是”或“是”更好吗?这样我的BDD场景就可以按照标准呈现并正确吗


参考任何文章也会有很大帮助。提前感谢。

两者都是正确的,并且有不同的好处

发明BDD的Dan North说,他更喜欢第一人称(“I”),因为它可以让他设身处地为用户着想。然而,他经常使用第三人称(“他/她/客户”),就像他在中一样

第一人称使用有助于使场景符合标准故事模板:

As <a stakeholder>
I want <something>
So that <goal>.
在这种情况下,将场景放在用户的角度是很奇怪的,因为用户并不真的想填写验证码框。我们可能会用第三人称

Given an odd-looking number "31" on a door frame
When the user identifies the number as "31"
Then the system should authenticate them as being human.
您还可能会发现,您有多个利益相关者,他们的结果非常重要。在这种情况下,将场景放在第三人称中有助于发现可能未包括在内的任何其他结果或重要利益相关者

Given Suzanne searches for a taxi for 4pm to take her to hospital
And the estimated price is $23
When she books the taxi
Then she should get a confirmation email
And the driver should be notified of the trip
And she should be charged $23.
因为苏珊娜、司机和优步都参与了这一场景,所以将他们放在第三人称中更有意义

我倾向于选择第三人称,特别是对于有很多场景的大型产品,因为我发现必须切换第一人称角色会让人困惑,而且它允许一致性。这也意味着你可以给场景中的演员起一个令人难忘的名字,并更容易地谈论他们(例如,克拉伦斯·克拉姆西(Clarence Clumbsy)把他的号码打错的那个)


但是,请记住,当您与利益相关者交谈以了解这些场景时,最重要的是对话。尽可能仔细地写下他们的话,只有在以后用小黄瓜重新措辞时才对语言做出让步。

看到一些文章,其中人们同时使用了这两种语言。那么陈述呢。。。“应显示”格式更好或使用“显示”存在。应该类似于预期,而“是”类似于实际结果。@SurajGupta“应该”允许提问;我停止使用它,但几年前又把它放回到了我的场景中。它鼓励人们问:“是否应该?始终?针对所有上下文?现在,在本版本中?”它还帮助区分上下文和结果。一个场景的结果可能是另一个场景的上下文,因此这在大型代码库中非常有用。
Given Suzanne searches for a taxi for 4pm to take her to hospital
And the estimated price is $23
When she books the taxi
Then she should get a confirmation email
And the driver should be notified of the trip
And she should be charged $23.