Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Cloud Contract org.junit.ComparisonFailure:预期:<;[200]>;但事实是:<;[401]>;在运行测试时_Spring_Gradle - Fatal编程技术网

Spring Cloud Contract org.junit.ComparisonFailure:预期:<;[200]>;但事实是:<;[401]>;在运行测试时

Spring Cloud Contract org.junit.ComparisonFailure:预期:<;[200]>;但事实是:<;[401]>;在运行测试时,spring,gradle,Spring,Gradle,我需要将基于maven的SpringCloudContract 2.0.0.RELEASE依赖项转换为基于Gradle的项目。下面是pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.repo

我需要将基于maven的SpringCloudContract 2.0.0.RELEASE依赖项转换为基于Gradle的项目。下面是pom.xml

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud-contract.version>2.0.0.RELEASE</spring-cloud-contract.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.SR4</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>       
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-contract-verifier</artifactId>
            <scope>test</scope>
        </dependency>   

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>           

            <plugin>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-contract-maven-plugin</artifactId>
                <version>${spring-cloud-contract.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <packageWithBaseClasses>com.globallogic.springfluxdemo.cdc</packageWithBaseClasses>
                    <testMode>EXPLICIT</testMode>
                </configuration>
            </plugin>
        </plugins>
    </build>
契约式groovy dsl

import org.springframework.cloud.contract.spec.Contract

Contract.make {
  description "Get Person Object"
  request {
    method GET()
    url value("/mono")
    headers {
      contentType(applicationJson())
      header('''Accept''', '''application/json''')
    }
  }
  response {
    status 200
    bodyMatchers{
      jsonPath('$.id', byType())
      jsonPath('$.name', byType())

    }
    headers { contentType(applicationJson()) }
    body (''' {
    "id": 1,
    "name": "Raj"
}''')
  }
}

但在gradle构建过程中面临问题,它说401状态返回,而不是200状态。

对于合同项下的baseClassForTests,存在一些错误配置。我放置了包而不是类名

contracts{
    testMode = 'EXPLICIT'
    baseClassForTests = 'com.startwithjava.springwebfluxcontract.cdc.PersonRestBase'
}
contracts{
    testMode = 'EXPLICIT'
    baseClassForTests = 'com.startwithjava.springwebfluxcontract.cdc.PersonRestBase'
}