2016-05-16 9 views
1

いくつかのイメージを扱うためのリソースを作成しました。前回と同じように、JUnitの@ClassRuleでテストしたかったのです。今Multipart機能でリソーステストを行う方法

@Path("/myImage") 
@POST 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response postImage(
     @FormDataParam("file") InputStream inputStream) { 
//doStuff 
} 

、私はそれをテストしたかった、と私はそれに問題がある:彼らはこのようになります。私は、このクラスのルールが

@ClassRule 
public static final ResourceTestRule resources = ResourceTestRule.builder() 
       .addResource(new MyResource()) 
       .addResource(new MultiPartBundle()) 
       .build(); 

OKになることを戦った。しかし、私はまだエラーを取得

org.glassfish.jersey.server.model.ModelValidationException:アプリケーションリソースモデルの検証が適用中に失敗しました初期化。

[[FATAL]型の公共のパラメータが見つかりません注入源...

がどのようにこの問題のための適切なクラスのルールを記述するには?

答えて

3

エラーは、MutliPartFeatureをサーバーに登録していないためです。 MultiPartBundleMultiPartFeatureを登録しています)は、ResourceTestRuleでサポートされているものではありません。あなた自身で登録するだけです。

public static final ResourceTestRule resources = ResourceTestRule.builder() 
       .addResource(new MyResource()) 
       .addProvider(MultiPartFeature.class) 
       .build(); 

クライアントと同じです。あなたはマルチパートシリアル化を使用したい場合は、あなたがhere

完全な例を見ることができます
resource.client().register(MultiPartFeature.class).. 

クライアント側の機能を登録する必要があります
関連する問題