2017-02-14 72 views
0

我正在使用Springboot 2.4.3,合同验证程序1.0.3发布使用Spring云合同测试。我创建了基于消息的测试Groovy的DSL合同如下编译春天云合同groovy生成的测试文件时出错DSL

包doc.messaging

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 

请 帮帮我。

+0

能否请你张贴在某个地方,或至少正确格式的代码?我无法正确阅读。 –

+0

它仍然看起来不好 - 你能格式化整个合同吗?从我看到你的标签在描述中是完全错误的。如果你可以在任何地方上传你的合同,这将是最好的。也请更新您生成的测试。 –

+0

上传文件到https://gist.github.com/ramju/b19f562a5f7a954afd1cbf09b8597298。 – user3777385

回答

0

我认为你的问题我来自一个错误的声明中的位置:

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('.*'))) 
]) 
+0

谢谢你的回应。它的输出没有问题,它的messageFrom()有效载荷有问题。如果我用这个输入替换这个输入{ \t \t triggeredBy('func()') \t}它的工作原理。只有当我从消息有效载荷的输入中接收到某些东西时,它才给出问题 – user3777385