提供程序中PactVerify每次迭代中数据的持久性

时间:2018-10-18 17:56:47

标签: java pact pact-jvm pact-broker

当提供者的端点执行数据持久化时,执行合同测试的最佳方法是什么?

例如,即客户的注册。我应该考虑管道中数据的回滚吗?

2 个答案:

答案 0 :(得分:0)

考虑到(通常)不应该将客户端驱动的合同测试视为功能测试,因此我模拟了处理其余调用的提供程序资源下面的所有内容。因此,不会删除任何数据,而且还大大简化了测试,因为您删除了对外部组件(包括数据库)的任何依赖。

例如,如果您的ClientResource(或ClientController,取决于您的姓名模式)调用ClientRepository,则ClientRepository将被模拟。

答案 1 :(得分:0)

我根据每个特定代码库的模拟/非模拟权衡进行决策。我曾在微服务上工作,可以很容易地回滚事务,因此我将真实的数据库用于这些测试。正如Fabricio所建议的那样,我还研究了模拟存储库更有意义的系统。我总是嘲笑下游服务依赖性。