0

Jersey Test フレームワークに関するドキュメントを読み、 JerseyTest の target メソッドを使用して、自分のファイル内の @Path 注釈付きエンドポイントに到達することに成功しました。簡略化したコードを以下に示します。

public class TestApplication extends ResourceConfig {
    public TestApplication() {
        registerClasses(TestService.class);
    }
}

@Override
protected Application configure() {
    return new TestApplication();
}

@Path("create")
public static class TestService {
    @POST
    @Path("testObj")
    @Consumes(APPLICATION_JSON)
    public static Response createTestObj(final TestObj testObj) {
        return Response.ok("testObj created").build();
    }
}

@Test
private void ensureObjectCreated() {
    JSONObject myObj = createNewObj();
    final Response response = target("create/testObj").request(APPLICATION_JSON)
                              .post(Entity.json(myObj.toString()));
    Assert.isEqual(response.status, 200);
}

ここで、他のファイル/ディレクトリの @Path 注釈付きエンドポイントに到達したいと考えています。どうすればいいですか?問題は、他のファイルが実際の製品コードであるため、クラスを静的にできないことです。ただし、他のパスのエンドポイントには到達可能です。

4

1 に答える 1