私は単純なプロジェクト Spring ブート プロジェクトを持っています。これには、Jersey ベースのコントローラーが 1 つ含まれています。 @Path("persons") @Produces(MediaType.APPLICATION_JSON) public class 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());
}
}
コントラクト (groovy ファイル) は次のとおりです: 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
、常に返されます: Failed tests:
ContractVerifierTest.validate_getTest:26 expected:<[200]> but was:<[404]>
ジャージーのパスが表示されないため、これは ServletDispatcher に関連していると思います。@Path を @RequestMapping に置き換えた同じプロジェクトが機能します。ただし、Jersey で動作させる必要があります。私は何かを逃しましたか?