2012-10-09 20 views
5

मेरे पास एक node.js मॉड्यूल है जो HTTP एक JSON अनुरोध पोस्ट करता है,mocha के साथ node.js http क्लाइंट का परीक्षण कैसे करें?

मैं सही यूआरएल, हेडर, अनुरोध निकाय के लिए परीक्षण करना चाहता हूं और अनुरोध वास्तव में निष्पादित किया गया है।

मैं एक परीक्षण ढांचे के लिए मोचा का उपयोग कर रहा हूं। मैं इसका परीक्षण कैसे करूं?

उत्तर

-1

superagent के साथ संयोजन में आजमाएं। एक्सप्रेस से सभी परीक्षण SuperTest के साथ लिखे गए हैं।

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

var request = require('supertest') 
    , express = require('express'); 

var app = express(); 

app.get('/user', function(req, res){ 
    res.send(201, { name: 'tobi' }); 
}); 

describe('GET /users', function(){ 
    it('respond with json', function(done){ 
    request(app) 
     .get('/user') 
     .set('Accept', 'application/json') 
     .expect('Content-Type', /json/) 
     .expect(200, done); 
    }) 
}) 
+1

मैं node.js http क्लाइंट अनुरोध का परीक्षण करने में देख रहा हूं और सर्वर नहीं .. –

+0

@zemirco, मैं इस परीक्षण फ़ाइल में लाइव ऐप सर्वर कैसे पास करूं? मैं सर्वर से अलग से परीक्षण चलाने के लिए पसंद करते हैं। –

1

आप nock उपयोग कर सकते हैं। आप http अनुरोध को रोक सकते हैं और कुछ गुणों के साथ

0

मैंने इस प्रकार की चीज़ के लिए Sinon.js का उपयोग किया है।

sinon = require 'sinon' 
assert = require "assert" 
describe 'client', -> 
    describe '#mainRequest()', -> 
    it 'should make the correct HTTP call', -> 
     url = "http://some.com/api/blah?command=true" 
     request = {} 
     sinon.stub request, 'get', (params, cb) -> cb null, { statusCode: 200 }, "OK" 
     client = new MyHttpClient request 
     client.sendRequest() 
     assert.ok request.get.calledWith(url) 

परीक्षण को सरल बनाने के लिए MyHttpClient क्लास कन्स्ट्रक्टर के लिए एक पैरामीटर के रूप में एक अनुरोध वस्तु लेता है। यदि प्रदान नहीं किया गया है, तो यह केवल 'अनुरोध' की आवश्यकता का उपयोग करता है।

संबंधित मुद्दे