在BDD中测试应用程序状态

时间:2019-07-09 13:31:32

标签: unit-testing testing cucumber tdd bdd

假设我有一个包含三个步骤的API:

  1. 创建报价
  2. 添加产品报价
  3. 创建付款
  4. 收费
  5. 更改(更新我数据库中的文档)

我正在为此API编写BDD。我的问题是,经过上述步骤后,是否应该检查文档是否已更新?或者,如果上述任何步骤失败,则不应更改文档?

我问这个问题是因为BDD是产品要读取的。好的,产品应该能够看到收费成功,但是产品是否需要查看数据库是否已更新?对他们来说,对技术而言也不是吗?

测试这些步骤的正确方法是什么,特别是如果这些步骤是操作链的最后一步?

1 个答案:

答案 0 :(得分:1)

  

在经过上述步骤后,我是否应该检查文档是否已更新?还是如果上述任何步骤失败都不应更改文档?

答案是“是”。

所有步骤通过后,您应该检查文档是否已更新。

您应该有其他方案来突出显示以下事实:如果任何步骤失败,文档将更新。实际上,这感觉像5个单独的场景:

  1. 一切顺利,文档已更新
  2. 第一步失败,文档未更新。
  3. 第一步已通过,但第二步失败。文档未更新。
  4. 第一步和第二步都通过了,但是第三步失败了。文档未更新。
  5. 第一步到第三步都通过了,但是“充电”步骤失败了。文档未更新。

虽然产品团队主要考虑场景1,但是如果将它们介绍给场景2-5,您将很快了解他们也关心这些​​场景。