当提供者的端点执行数据持久化时,执行合同测试的最佳方法是什么?
例如,即客户的注册。我应该考虑管道中数据的回滚吗?
答案 0 :(得分:0)
考虑到(通常)不应该将客户端驱动的合同测试视为功能测试,因此我模拟了处理其余调用的提供程序资源下面的所有内容。因此,不会删除任何数据,而且还大大简化了测试,因为您删除了对外部组件(包括数据库)的任何依赖。
例如,如果您的ClientResource
(或ClientController
,取决于您的姓名模式)调用ClientRepository
,则ClientRepository
将被模拟。
答案 1 :(得分:0)
我根据每个特定代码库的模拟/非模拟权衡进行决策。我曾在微服务上工作,可以很容易地回滚事务,因此我将真实的数据库用于这些测试。正如Fabricio所建议的那样,我还研究了模拟存储库更有意义的系统。我总是嘲笑下游服务依赖性。