2011-08-17 8 views
6

मैं निम्नलिखित करने के लिए अपने सुरक्षित वेब सेवा का परीक्षण करना चाहते:टेस्ट RESTful JSON Grails वेब सेवा

  • सही UrlMapping, तो निम्नलिखित सेवाएं उपलब्ध हैं या नहीं?
  • टेस्ट प्राप्त/पोस्ट/PUT/हटाएँ और उनके प्रदान की गई प्रतिक्रिया के साथ ही त्रुटियों
  • टेस्ट त्रुटि संदेश लॉग इन और

में लॉग इन किया किसी ने मुझसे कुछ संकेत दे कैसे यह करने के लिए नहीं कर सकते? मुझे कोई संकेत नहीं है कि grails सुरक्षा सेवा तक पहुंचने और लॉग इन होने पर और जब नहीं, मेरे नियंत्रकों के खिलाफ परीक्षण चल रहा है। साथ ही मुझे अपने नियंत्रकों के खिलाफ परीक्षण करने के लिए कुछ मॉक सर्वर या कुछ चाहिए?

क्षमा करें मैं इस विषय के लिए बहुत नया हूं लेकिन मैं अपने वेब सर्विसेज पर नियंत्रण खोने से पहले सही दिशा में जाना चाहता हूं।

आपकी मदद के लिए धन्यवाद!

उत्तर

7

हम REST Client प्लगइन का उपयोग functional testing प्लगइन के साथ हमारी सभी वेब सेवाओं का परीक्षण करने के लिए करते हैं।

उदाहरण के लिए ...

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

मैं समान कोड है, जिसमें (ग्रूवी 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**) 
संबंधित मुद्दे