java - Spring Cloud Contracts 使用提供者状态
问题描述
我正在使用 Spring Cloud Contracts 版本 2.1.1,并且我想使用提供者状态。我知道我可以使用这里和这里描述的场景。例如,我可以使用 POST 方法合约向数据库添加一些状态,然后使用 GET /calculate 方法合约,它根据数据库中的数据(提供者状态)执行一些逻辑。
但是,如果服务仅包含 GET /calculate 方法(它依赖外部进程将数据直接加载到数据库中)怎么办?在没有 API 方法的情况下如何创建提供者状态?Spring Cloud Contracts有可能吗?
我的理解是,使用 Pact,您可以使用任何 Java 代码来初始化提供程序状态,并使用 和 使该状态成为合同的given
一部分@State
。使用 Spring Contracts,我似乎仅限于使用 API 请求(创建合同并在场景中使用它)。有人可以澄清一下我如何使用一些普通的 Java 代码将状态直接加载到 DB,并使其成为合同的一部分吗?
解决方案
在春季云合同中,我们认为您不应该设置提供者状态——这意味着您不应该依赖您的数据库。您应该模拟服务。如果你真的必须这样做,那么在 before 方法的基类中,你可以根据需要设置数据库状态。
推荐阅读
- oracle - Cursor Select 语句 where 条件根据条件而变化
- grpc-java - grpc-java 双向流性能
- python - OpenMDAO 的 SimpleGADriver 中自动计算的位,具有整数值
- java - JMeter - 不支持的 major.minor 版本 51.0
- c# - 检查 c# 中至少一个文本框值是否不为空或零?
- android - 循环失败,不会增加数量,android studio
- c++ - POCO C++ 对象到 JSON 字符串序列化
- swift - Firebase 存储
- function - 定义八度函数
- java - 如何解决启动 event_scheduler 失败