2011-07-12 5 views
3

私はRESTリソースをテストしたい:私はこれやりたいRESTリソーステスト

@GET 
@Path("/{dbName}") 
@Produces(MediaType.APPLICATION_JSON) 
public String getRequest(@PathParam("dbName") String dbName) 
     throws JSONException { 

}

assert(someExpectedOutput,getRequest()) 

を今すぐパスは@Pathアノテーションのために設定されますどのように??

答えて

2

あなたが右先に行くと、それを一つの文字列を渡し、Javaメソッドとして、テストのために直接getRequestを呼び出すしようとしている場合:

assertEquals(someExpectedOutput, getRequest("someMockDbName")); 

それは、結局1つの文字列パラメータを使用して、単にJavaメソッドであります。

JAX-RS注釈は、サーバーを実行しているときにのみ起動します。この場合、フレームワークはパスパラメータとJavaパラメータdbnameを照合します。テストのために、モックオブジェクトを使用するつもりであると思いますので、心配はありません。好きな文字列を渡してください。

サーバー内でテストする場合(統合テストと同じように)、Webサーバー用のJetty、データベース用のHSQLDBまたはDerbyなどを検討してください。そのようなテストはもっと複雑です。

+0

これは、統合テストを行うときに役立ちます。http://www.baeldung.com/2011/10/13/integration-testing-a-rest-api/ – Eugen

1

テスト用のJerseyフレームワーク(com.sun.jersey.test.framework)も有益です。または上記のように通常のjunitの方法で行います。