BDD 结果:如果我预计会出现错误该怎么办

BDD Result: What to do if I expect an error

我正在尝试一些 BDD 方法,但我有一个问题:

我为一个虚构的银行账户做了一个场景:

Scenario: No money as new customer
    Given I'm a customer
    And I've not any deposit
    When I try to withdraw 50 dollars
    Then I should get an error

我正在使用 Specflow + NUnit 实现它。

我对 Then I should get an error 有点厌烦。 因为目前我有 bool TryWithdraw(double amount).

我可以看到两种使其工作的方法:

  1. 更改 BDD 要求以删除 THEN
  2. 存储WHEN的结果,并在THEN中查看

正确的做法是什么?我的 BDD 要求是否正确,还是必须存储结果?

BDD 测试就像结构化的单元测试。你有一个安排部分,一个表演部分,最后是断言部分:

  • 给出=安排
  • 何时=行动
  • 然后=断言

因此存储您的操作结果(当我尝试提取 50 美元时)是完全有效的。 然后你根据结果做你的断言。