0

私はリソースを持っています:

@Path("/")
public class Resource {

   @GET
   public Response getResponse() {
       //..
       final GenericEntity<List<BusinessObject>> entity = new GenericEntity<List<BusinessObject>>(businessobjects) { };
       return Response.status(httpResultCode).entity(entity).build();
   }

}

Jerseyクライアントを使用せずにこのメソッドを単体テストしたいのですが、Responseオブジェクトの本体を取得する方法がわかりません。うまくいく方法がわかりません。テスト方法は次のとおりです。

@Test
public void testMethod() {
    Resource resourceUnderTest = new Resource();
    Response response = resourceUnderTest.getResponse();
    List<BusinessObject> result = ???;
}

ジャージークライアントを経由すれば、希望する結果を得ることができますが、HTTPリクエストを行わずに、メソッドを直接呼び出すだけです。

4

1 に答える 1

2
List<BusinessObject> result = (List<BusinessObject>)response.getEntity();

これにより、応答ビルダーのエンティティメソッドに渡したオブジェクトが返されます。Responseオブジェクトは結果をシリアル化しません。前のメソッドを見ると、getEntityはおそらくGenericEntity>を返すので、このようなコードが必要になります。

GenericEntity<List<BusinessObject>> result = (GenericEntity<List<BusinessObject>>)response.getEntity();
于 2012-06-01T21:58:10.670 に答える