首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Cloud Contract org.junit.ComparisonFailure:运行测试时期望:<[200]>但was:<[401]>

Spring Cloud Contract org.junit.ComparisonFailure:运行测试时期望:<[200]>但was:<[401]>
EN

Stack Overflow用户
提问于 2018-07-29 12:39:26
回答 1查看 167关注 0票数 0

我需要转换一个基于maven的Spring Cloud Contract 2.0.0.RELEASE依赖项到基于Gradle的项目。这是pom.xml。

代码语言:javascript
复制
<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>

但是使用gradle init,我已经将maven项目转换为gradle one。但它并不能很好地工作。后来,我在build.gradle中添加了合同插件。这是build.gradle。

代码语言:javascript
复制
apply plugin: 'io.spring.dependency-management'
apply plugin: 'spring-cloud-contract'


dependencyManagement {
    imports {
         mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Edgware.SR4'
    }
}


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

在合同groovy dsl中

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 23:47:44

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

代码语言:javascript
复制
contracts{
    testMode = 'EXPLICIT'
    baseClassForTests = 'com.startwithjava.springwebfluxcontract.cdc.PersonRestBase'
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51577264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档