使用 SpecFlow,我们调用了 API 服务层,然后与持久层对话。我们的大多数场景都很好地使用 API 将数据库设置为不同的状态,但是有一些场景无法通过 API 进入数据库,因为它们是故障状态。
我们想我们可以创建一个与 SpecFlow 解决方案对话的层,这反过来又将数据库“捏造”到该状态,这样我们就可以调用 API 层来检查我们是否得到了预期的响应。但是,就 BDD 而言,这是否正确?我对 BDD 的理解与 ATDD 非常相似,您可以在其中测试主要的快乐路径和异常路径,并且应该对细粒度的东西进行单元测试。
如果你不能通过 API 做某事,难道不应该在你的 BDD 场景中进行测试吗?