Groovy和Spring云契约-bodyAsValue中的变量

Groovy和Spring云契约-bodyAsValue中的变量,groovy,spring-cloud-contract,Groovy,Spring Cloud Contract,我想知道如何在Groovy中创建带有随机值的Json负载。 比如说 Contract.make { name"MyFirstContract" description "A description" request { method "POST" url "/api/team/createTeam" headers {

我想知道如何在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",
           "memberType":"USER",
           "reference":"papas"
           },
           {"role":"Junit Collaborator",
           "memberType":"USER",
           "reference":"papas"
           },
           {"role":"Junit Reviewer",
           "memberType":"USER",
           "reference":"papas"
           }
           ]     
    } } """
    }
前面代码中的重要部分是以下在编译过程中失败的部分

显示以下错误消息:

 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
是否可以在主体内部调用方法,或者我必须通过相同的方法返回主体的所有内容


谢谢大家!

你必须为整个身体打电话,这对身体的一部分不起作用

谢谢你Marcin,我认为这是事实,但我需要额外的确认Marcin你失去了groovy测试提供的美丽/清洁,因为我们必须逃离角色。当然,我们可以将json主体存储在文件中,而无需转义字符,但这也增加了额外的一小层复杂性。如果能够从Groovy测试中调用方法,那就太好了。再次感谢你!嗨,马辛,请看一下这个问题,因为它与这个问题有关,你已经飞快地回答了:谢谢!
 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