[英]Spring Cloud Contract with Jersey
我有一個簡單的項目Spring boot項目。 它包含一個基於Jersey的Controller:@Path(“ persons”)@Produces(MediaType.APPLICATION_JSON)公共類PersonsController {
@GET
public Person get() {
return new Person("James", 20);
}
}
它按預期返回json響應(URL: http:// localhost:PORT / persons ):
{
"name": "James",
"age": 20
}
我的目的是為此控制器添加Spring Cloud Contract測試。 我已經添加了所有必需的mvn配置,並進行了測試:
public class MvcTest {
@Before
public void setup() {
RestAssuredMockMvc.standaloneSetup(new PersonsController());
}
}
這是合同(常規文件):import org.springframework.cloud.contract.spec.Contract
Contract.make {
request {
method 'GET'
url('persons')
}
response {
status 200
body(
"name": "James",
"age": 20
)
}
}
當我運行mvn clean package
總是返回以下錯誤:測試失敗:
ContractVerifierTest.validate_getTest:26 expected:<[200]> but was:<[404]>
我認為這應該與ServletDispatcher有關,因為它看不到Jersey的路徑。 替換為@RequestMapping的@Path的同一項目有效。 但是,我需要使其與Jersey一起使用。 我錯過了什么嗎?
您是否查看了有關jaxrs支持的部分? https://cloud.spring.io/spring-cloud-contract/1.0.x/spring-cloud-contract.html#_jax_rs_support 。 這里有一個示例如何使用它https://github.com/spring-cloud/spring-cloud-contract/tree/1.0.x/spring-cloud-contract-tools/spring-cloud-contract-gradle-插件/ src目錄/測試/資源/ functionalTest / sampleJerseyProject
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.