Groovy 和 Spring Cloud Contract - bodyAsValue 中的变量

问题描述

我想知道我应该如何在 Groovy 中创建具有随机值的 Json 负载。 例如

Contract.make {
    name"MyFirstContract"
    description "A description"

    request {
        method "POST"
        url "/api/team/createTeam"
        headers {
            contentType applicationjson()
            accept applicationjson()
            header"Authorization",execute('bearerOfAccesstoken()')
        }
        body """ {
    "authenticatedUserCode":"papas","input": {
        "name":"${execute('generateTeamUniqueName()')}","teamDeFinitionName":  "JUNIT TEST NAME","context":"context AHO","description":"team Description","members":
           [
           {"role":"Junit Reviewer","memberType":"USER","reference":"papas"
           },{"role":"Junit Observer",{"role":"Junit Collaborator",{"role":"Junit Reviewer","reference":"papas"
           }
           ]     
    } } """
    }

前面代码的重要部分是以下在编译过程中失败的部分。

        "name":"${execute('generateTeamUniqueName()')}",

带有以下错误消息:

 Execution default-generateTests of goal org.springframework.cloud:spring-cloud-contract-maven-plugin:3.0.2:gener
ateTests Failed: expecting '}' or ',' but got current char 'E' with an int value of 69

是否可以在主体内部调用一个方法,或者我必须通过相同的方法返回主体的所有内容???

谢谢!

解决方法

你必须为整个身体调用它,它不会对它的一部分起作用