1

我有一個簡單的項目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的相同項目可以工作。不過,我需要讓它與澤西合作。 我錯過了什麼嗎?

回答