mocha.js - BDD 如何捕获系统交互(持久性、API 调用、通知等)?
问题描述
在使用 BDD 准备测试用例时,我有点困惑。
这是我用 Gherkin 语法表达的期望要求。
Given A user is subscribed to the system
When A user try to subscribe again
Then System should send him a notification "Subscription unsuccessful"
and Admin Portal User should view related KYC Fields as blank
内部系统交互应该如何体现在 BDD 中?
例如:
a) 在每一步之后,在 MongoDB 中都需要持久化
b) 在 KYC API 调用之前,需要调用一些内部 API 调用作为预验证
c) 流程结束后需要向用户发送通知
通知应该被视为系统行为还是业务行为?
持久性、调用 API 等应该如何反映在 BDD 中?
我错过了什么吗?
有人可以帮忙吗?
解决方案
作为系统行为或业务行为的通知很大程度上取决于被测系统。
如果该场景的全部目的是确保发送通知,那么它就是一种业务行为。基本上都是关于你的Then
.
由于您的场景断言通知已发送,因此我将其归类为业务行为,您的场景完全有效。
BDD 测试不一定需要用户界面。它可能涉及直接调用 API 并对结果进行断言。我什至使用 Gherkin 为一个类上的单个方法编写了单元测试。它只是碰巧用商业术语说明了该方法在做什么。这正是 BDD 的设计目的。
推荐阅读
- maven - 当不同仓库中有多个依赖项时,为什么 maven 使用错误的仓库?
- javascript - useEffect 缺少依赖项
- laravel - 更改值 psql where value between, as string
- python - TypeError:create_order() 接受 1 个位置参数,但给出了 2 个
- python - 我无法创建一个函数来告诉我 CSV 文件中发生了多少次地震
- python - Pytesseract OCR 用于图像上的单个字符
- javascript - 使用 JavaScript 合并远程文件
- asp.net - 基于其他表中的列值检查约束
- python - 计算每行中的单词并将计数分配给预定义的列
- vba - 将 URL 从 Web 浏览器复制并粘贴到 MS Word 时,如何删除尾部斜杠?