वहाँ इकाई परीक्षण middlewares लिए HTTP अनुरोध और प्रतिक्रिया वस्तुओं उपहास करने के लिए सुविधाजनक तरीका है?Node.js: नकली http अनुरोध और प्रतिक्रिया
उत्तर
मैं nodejutsu नकली उपयोग कर रहा हूँ:
https://github.com/nodejitsu/mock-request
हो सकता है कि यह आपके लिए क्या देख रहे है।
परियोजना को बहिष्कृत किया गया है। सिफारिश "nock" का उपयोग करना है https://github.com/flatiron/nock –
नॉक http अनुरोधों को पुन: स्थापित करने के लिए काम नहीं करता है। – Kevin
मैं एक पुस्तकालय लिखा मानक HTTP के माध्यम से या अनुरोध मॉडल के माध्यम से किए गए अनुरोधों का प्रतिक्रियाओं बाहर उपहास करने के लिए:
यह नकली बनाने के लिए इस्तेमाल किया जा सकता दोनों https://github.com/howardabrams/node-mocks-http और https://github.com/vojtajina/node-mocks की तरह लग रहा http.ServerRequest
और http.ServerResponse
वस्तुओं।
नोड-मैक्स-http मूल पोस्ट के लिए एक महान समाधान की तरह दिखता है। – newz2000
ठीक है, बस इस पर आकर, नोड-मैक्स-http अद्भुत है। (जहां तक वास्तव में HTTP अनुरोध किए बिना परीक्षण अनुरोध हैंडलर) –
टैग से, ऐसा लगता है कि इस सवाल का जैसे एक्सप्रेस के बारे में है। उस मामले में, supertest बहुत अच्छा है:
var request = require('supertest')
, express = require('express');
var app = express();
app.get('/user', function(req, res){
res.send(201, { name: 'tobi' });
});
request(app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '20')
.expect(201)
.end(function(err, res){
if (err) throw err;
});
सामान्य नोड उपयोग के लिए, Flatiron Nock एक अच्छा विकल्प की तरह दिखता है:
var nock = require('nock');
var example = nock('http://example.com')
.get('/foo')
.reply(200, { foo: 'bar' });
var http = require('http');
var options = {
host: 'example.com',
port: 80,
path: '/foo',
method: 'GET'
}
var req = http.request(options, function(res) {
res.on('data', function(chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('error: ' + e);
});
req.end();
आउटपुट:
शरीर: { "foo": "बार "}
https://github.com/timsavery/node-hmock या npm install hmock
देखें ... कोई प्रतिक्रिया स्वागत है! समाधान ने अब तक मेरे लिए अच्छा काम किया है।
Mockery इस बात के लिए बहुत अच्छा लगता है।
मूलतः यह require
कॉल hijacks, और एक अलग वस्तु/समारोह ठूंठ आपके द्वारा निर्दिष्ट देता है।
मैं motty उपयोग करने के लिए प्रोत्साहित करते हैं। हमें एक और कोड क्यों चाहिए?
- 1. Node.js http अनुरोध पाइपलाइनिंग
- 2. नकली HTTP GET अनुरोध
- 3. http अनुरोध समय को node.js
- 4. HTTP PUT अनुरोध Node.js
- 5. लॉग जैक्स-डब्ल्यूएस http अनुरोध और प्रतिक्रिया
- 6. node.js में http अनुरोध भेजना
- 7. node.js http अनुरोध को कैसे समाप्त करें
- 8. Node.js के साथ असमर्थित HTTP विधियों के लिए HTTP प्रतिक्रिया?
- 9. node.js "अनुरोध" मॉड्यूल के साथ प्रतिक्रिया एन्कोडिंग
- 10. HTTP अनुरोध के लिए नाम + प्रतिक्रिया
- 11. Node.js http अनुरोध काम नहीं कर रहे
- 12. "javax.servlet.ServletException: गैर-HTTP अनुरोध या प्रतिक्रिया" जेबॉस
- 13. HTTP पोस्ट अनुरोध से नल प्रतिक्रिया
- 14. HTTP POST अनुरोध कैसे भेजें और प्रतिक्रिया प्राप्त करें?
- 15. कैसे पाइथन http अनुरोध और प्रतिक्रिया काम करता है
- 16. HTTP अनुरोध 401.2 प्राप्त करने के सभी अनुरोध - अनधिकृत प्रतिक्रिया
- 17. HTTP अनुरोध mikeal की 'अनुरोध'
- 18. http प्रतिक्रिया
- 19. backbone.js में नकली मॉडल प्रतिक्रिया
- 20. Node.js अनुरोध
- 21. gzip संपीड़ित http प्रतिक्रिया
- 22. प्रॉक्सी http के लिए नोड जेएस का उपयोग और प्रतिक्रिया
- 23. रुबी HTTP अनुरोध
- 24. Node.js अनुरोध 301 रीडायरेक्ट
- 25. http अनुरोध पर http सर्वर को पाइप करके सरल node.js प्रॉक्सी
- 26. HTTP 500 प्रतिक्रिया RawXmlMessage.aspx
- 27. Express.js HTTP अनुरोध टाइमआउट
- 28. सामग्री-लंबाई के बिना http अनुरोध की प्रतिक्रिया प्राप्त करना?
- 29. कैसे Node.js में http ग्राहक के अनुरोध के अपवाद
- 30. HTTPS पर HTTP HEAD अनुरोध के लिए सही प्रतिक्रिया केवल
एक कारण आप अपने परीक्षण के मामले में वास्तविक HTTP अनुरोध शामिल नहीं है है? एक async परीक्षण सेटअप में reallx व्यवहार्य होना चाहिए। –
मैं इसके साथ गया, लेकिन ईमानदार होने के लिए यह एक यूनिट परीक्षण की तरह महसूस नहीं करता है, यह एकीकरण की तरह अधिक है। वैसे भी, अब तक मेरा सबसे अच्छा विकल्प है। – 7elephant
मैं असली http अनुरोधों को शामिल नहीं करना चाहता क्योंकि यह मेरे परीक्षण धीमे, और कम विश्वसनीय बनाता है। उदाहरण के लिए, यदि मैं सेवाओं में से एक को डीबी का समर्थन करता हूं, और यह विफल रहता है क्योंकि क्यूए में डीबी को मिटा दिया गया है (या प्रोड के साथ सिंक किया गया है, या जो भी हो) तो मेरे परीक्षण विफल होने लगते हैं। इसके अलावा यदि आप नकल नहीं करते हैं तो कुछ त्रुटि मामलों को विश्वसनीय रूप से मजबूर करने के लिए यह असंभव है। नहीं, मुझे मोजे पसंद हैं - वे परीक्षण को आसान और अधिक विश्वसनीय बनाते हैं। – Kevin