Specflow 的 Given When Then 但是?

8

我已经使用了一段时间的SpecFlow,但是没有使用过“但是”逻辑。

考虑以下场景:

Scenario: Kiran logs into the system but doesn't click remember me
Given I have a username of 'Kiran'
And a password of 'password'
When I chose login
But I don't chose remember me
Then I should be logged in
And Taken to the home screen
But My username should not be remembered

"but"步骤不能和"and"互换吗?

使用"but"有什么好处吗?

"but"仅仅是为了易读性而存在的,我理解得对吗?

期待你对此的看法。

谢谢, Kiran

1个回答

13
是的,您说得对,“and”和“but”在gherkin语法中可以互换使用。
然而,根据我的经验,在要求用户执行动作时,使用“and”,而在强调用户不应执行某个动作时,则最好使用“but”;这是因为在英语中,“but”通常用于负面情境中。
因此,在您的示例中:
“但我不选择记住我”
使用“but”是很好的,因为他们没有执行动作。此外,使用“but”使测试意图明确,消除了任何可能存在的歧义。

谢谢Ben!我整晚都在思考这个问题。 - K-Dawg
2
没有问题 :D 这是一个好问题,当回答这样的问题时,它有助于我巩固我的理解。 - Ben Smith
1
我认为有一种语法来表示“做这个”和“不要做那个”是很好的。感谢您的解释。 - Karl Gjertsen
@PrimeByDesign,由于已经快一年了(!),您打算将此标记为已回答吗? - Ben Smith
2
@BenSmith 不过现在我想是时候将其标记为已回答了!哈哈,很抱歉我错过了你五月份的评论。 - K-Dawg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接