编译从弹簧云合约时髦的DSL生成的测试文件时出错



我正在使用 Spring Cloud 合约测试,使用 Springboot 2.4.3,合约验证器 1.0.3 发布。我为基于消息的测试创建了一个时髦的DSL合约,如下所示

包文档消息传递

Contract.make { 描述 "合同">

    label 'label2'
    input {
    messageFrom('generateDoc')
    messageBody([
            docId: 'D111'
    ])
}
outputMessage {
    sentTo('DocGenerated')
    body([
            "docId"     : value(consumer('D1111'), producer(regex('.*'))),
            "DocNumber" : value(consumer('123'),producer(regex('.*')))
    ])
}

}

它失败并给出以下错误:

Error:(24, 89) java: method create in class org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging<M> cannot be applied to given types;   required: java.lang.Object,java.util.Map found: java.lang.String   reason: actual and formal argument lists differ in length

请帮忙。

我认为你的问题来自这里的错误声明:

body([
        "docId"     : value(consumer('D1111'), producer(regex('.*'))),
        "DocNumber" : value(consumer('123'),producer(regex('.*')))
])

它应该看起来像这样:

body([
        docId     : value(consumer('D1111'), producer(regex('.*'))),
        DocNumber : value(consumer('123'),producer(regex('.*')))
])

最新更新