サービスを使用するrest API for resourceがあります。 このサービスには、パラメータを持つコンストラクタがあります。 このリソースをテストし、このサービスを模擬したいと考えています。 これはQuestion: How to pass parameters to REST resource using Jersey 2.5ジャージテストフレームワークを使用したリソース内モックサービス
は@Injectを使用していて使用できないため役に立ちませんでした。 提案がありますか? 私のコードは次のとおりです:
2番目の質問は、私は、パラメータを渡す行い、このresouceをテストする方法である
@Path("/2/{subversion: [0-3]}/users")
public class UserResource {
Logger log = Logger.getLogger(UserResource.class);
private MyService service;
public void setService(Service ser) {
this.service = ser;
}
@ContextのHttpServletRequest currentRequest。
@GET
@Produces("application/json")
public Response getUsers(@Context HttpHeaders httpHeaders, @Context UriInfo
uriInfo) {
// my function
}
}
「httpHeaders」と「UriInfo」をどのように渡すことができますか。 私のテストは、次のようになります。コンストラクタやセッターを通じて注入のいずれかに
Response response = target("/2/0/users/").request().get();
Users users = response.readEntity(Users.class);
assertNotNull(users);
ありがとうございます。それに関するもう1つの質問は、私が@context属性を持つリソースプロパティを持っていれば何ができますか? 投稿を –
で更新しましたユニットテストを実行している場合は、上記のようにモックしてください。テストフレームワークで統合テストを実行している場合は、HttpServletRequestを注入するためにサーブレットコンテナで実行するように設定する必要があります。 [参照してください](http://stackoverflow.com/q/28436040/2587435) –
バインディングが私のために働いていないように見えます。 HttpServletRequestのバインダーを作成していくつかのブレークポイントを設定しましたが、何も起こりません。私は統合テストを行っています。 –