2011-08-17 12 views
6

テストRESTfulなJSON GrailsのWebサービス

  • 正しいUrlMappingので、利用可能かどうか、以下のサービスがありますか?
  • テストGET/POST/PUT/DELETEとそのレンダリングされたフィードバックだけでなく、エラー
  • テストのエラーメッセージをログインし

ログインしていません誰かが私にこれを行うにはどのようにいくつかのヒントを与えることはできますか? Grailsのセキュリティサービスへのアクセス方法や、ログインしているときとそうでないときの私のコントローラに対するテストの実行方法は分かりません。同様に私はいくつかのモックサーバーや何かが私のコントローラや、テストする必要がありますか?

申し訳ありませんが、私はこのトピックに非常に新しいですが、私は自分のWebサービスを介してコントロールを失う前に、右方向に行きたいです。

ありがとうございました!

答えて

7

REST Clientプラグインとfunctional testingプラグインを使用して、すべてのWebサービスをテストしています。例えば

...

void testCreateTag() { 
    def name = 'Test Name' 
    def jsonText = """ 
     { 
      "class":"Tag", 
      "name":"${name}" 
     } 
     """ 

    post('/api/tag') { 
     headers['x-user-external-id'] = securityUser.externalId 
     headers['x-user-api-key'] = securityUser.apiKey 
     headers['Content-type'] = 'application/json' 
     body { 
     jsonText 
     } 
    } 

    def model = this.response.contentAsString 
    def map = JSON.parse(model) 

    assertNotNull(map.attributes.id) 

    Tag.withNewSession { 
     def tag = Tag.get(map.attributes.id) 

     assertNotNull(tag) 
     assertEquals(name, tag.name) 
    } 
} 
0

は、私はRESTクライアントのプラグインは、より信頼性の高いかもしれないと思うとだけ機能テスト用プラグインが必要ではなく、(グルーヴィー1.8)JsonSlurperに建設を使用するようなコードを持っています。

String baseUrlString = 'http://localhost:8080/**YOURAPP**' 

    baseURL = baseUrlString 

    post('/j_spring_security_check?') 

    assertStatus 200 
    assertContentDoesNotContain('Access Denied') 

    get("/*your test URL*/") 

    def jsonObj = new JsonSlurper().parseText(this.response.contentAsString) 
    assertEquals(jsonObj.your.object.model, **yourContent**) 
関連する問題