Spring Cloud CDC单独的基类配置

5hcedyr0  于 2023-01-19  发布在  Spring
关注(0)|答案(1)|浏览(124)

我在试着建立一个 Spring 疾控中心的配置。
但是当我想为Map定义单独的基类时,我遇到了一个问题。
当我把它定义为

contracts {
    contractsDslDir.set(file("src/test/resources/contracts"))
    testFramework.set(org.springframework.cloud.contract.verifier.config.TestFramework.JUNIT5)
    packageWithBaseClasses.set("my.app")
}

它起作用了。
但是当我使用baseClassMappings元素时,我得到了一个异常。

contracts {
    contractsDslDir.set(file("src/test/resources/contracts"))
    testFramework.set(org.springframework.cloud.contract.verifier.config.TestFramework.JUNIT5)
//    packageWithBaseClasses.set("my.app")
    baseClassMappings {
        baseClassMapping("src/test/resources/contracts/one.*", "my.app.ContractVerifierBase")
    }
}

我得到的错误:
java.lang.IllegalStateException:您还没有配置MockMVC示例。您可以静态地完成此操作
其余已确定的模拟Mvc.模拟Mvc(..)其余已确定的模拟Mvc.独立安装程序(..);已确认的MockMvc. webAppContext安装程序(..);
或使用DSL:

2w2cym1i

2w2cym1i1#

我找到了解决办法。
1.无论如何,我们需要设置packageWithBaseClasses
1.测试的基类和包应具有相同的名称

contracts {
    contractsDslDir.set(file("src/test/resources/contracts"))
    testFramework.set(org.springframework.cloud.contract.verifier.config.TestFramework.JUNIT5)
    packageWithBaseClasses.set("my.app")
    baseClassMappings {
        baseClassMapping("src/test/resources/contracts/user.*", "my.app.UserBase")
        baseClassMapping("src/test/resources/contracts/company.*", "my.app.CompanyBase")
    }
}

相关问题