2017-02-14 36 views
1

我有以下规格:小黄瓜:当再步骤定义都或多或少相同

场景:检索客户授权文件
鉴于我有一个客户,没有许可证
当我找回许可证文件
然后不应检索许可证文件

在这种情况下,当时和然后步骤定义更不相同。我想在此场景中指定的是,当客户没有许可证时,无法检索许可证文档。

当我检索许可证文件意味着许可证的检索是可能的。

有没有人有解决方案来重写这种情况?

+3

也许如果您更改措辞,它可以符合您的要求。 “当我尝试检索许可证文档时” – pringi

+0

现在提出的问题不是关于编程,而是选择正确的措辞。 – sashoalm

回答

0

在这种情况下,当从句是redundent

场景:检索客户授权文件
考虑到我有没有执照
客户当我取回许可证文件
那么不应该检索许可证文件

在try catch中放入当时caluse的代码隐藏实现。在赶上,发布成功。在try块中,最后引发异常。

+1

在我看来,总是有一个行动。所以我不能只是忘了在声明... 另一种选择: 考虑到我有没有执照 客户,当我尝试检索许可证文件 然后将授权文件不应被检索 但这听起来不对,因为你无法“尝试”某些东西。这不是一个行动。 – Fischmeister

+0

小黄瓜不是关于英语是否符合语法。这是关于有一个易于理解的测试脚本,可以兼作文档。 Specflow或任何其他小黄瓜impl。对待给定/时间/然后相同,实际上他们只是去掉前缀。所以它归结为做简单的事情。你可以拥有所有的三个Statents,在When子句中捕获异常并在then子句中验证异常的存在。但为什么要编写这么多代码来测试其他代码呢?谁会守卫卫兵? – inquisitive

0

对于你如何编写场景没有硬性规定,也没有任何标准格式。但是,gherkin具体而言就是,像BA这样的非技术人员,非技术性管理人员理解测试的真正意义。你使用这些句子越精确,它就越容易理解和有意义。

如果您不打算以可理解的方式编写步骤,则根本没有必要实施gherkin。你可以用ruby或Java编写代码,让BA等人自己理解代码。

在您的场景中,在第三步中使用Whenthen更有意义。

  • When恰恰描述键操作的用户/程序 执行。

  • Then步骤的目的是观察结果。

    Scenario: Retrieve customer license document 
    Given I have a customer with no license 
    `When` I retrieve the license document 
    Then the license document should not be retrieved 
    
0

所以,你有一个场景是这样的:

Scenario: Retrieve customer license document 
    Given I have a customer with no license 
    When I retrieve the license document 
    Then the license document should not be retrieved 

BDD是所有的开发团队和业务之间的通信。企业会如何描述系统的行为?

他们会说一些这样的?:

Scenario: Customer has no license 
    Given Carl the Customer has no license 
    When Bernadette the Business User attempts to retrieve Carl the Customers licence document 
    Then Bernadette the Business User should see no license document for this customer 
0

方案:确认许可文档时,客户没有许可证

考虑到我有没有许可证的客户不应该被检索 - 鉴于说明你有什么

当我获取授权文件 - 当介绍你想怎么办

什么然后验证是t他不应该检索许可证文件---这是场景的最终结果