我有一個簡單的項目Spring引導項目。它包含一個基於新澤西控制器: @Path( 「人」) @Produces(MediaType.APPLICATION_JSON) 公共類PersonsController {Spring Jersey與澤西合同
@GET
public Person get() {
return new Person("James", 20);
}
}
它返回預期的JSON響應(網址:http://localhost:PORT/persons):
{
"name": "James",
"age": 20
}
我的目標是爲此控制器添加Spring Cloud Contract測試。我已經添加了所有必需的MVN配置和測試:
public class MvcTest {
@Before
public void setup() {
RestAssuredMockMvc.standaloneSetup(new PersonsController());
}
}
這是合同(常規文件): 進口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沒有看到澤西的路徑。將@Path替換爲@RequestMapping的相同項目可以工作。不過,我需要讓它與澤西合作。 我錯過了什麼嗎?