में फ़ाइल अपलोड के साथ इकाई परीक्षण कैसे करें मेरे पास Express.js पर बनाया गया एक ऐप है और मैं फ़ाइल अपलोड कार्यक्षमता का परीक्षण करना चाहता हूं। मैं req.files (Express.bodyParser midware का उपयोग करते समय) पर पार्स किए गए ऑब्जेक्ट को पुन: उत्पन्न करने का प्रयास कर रहा हूं। मैं यह कैसे कर सकता हूँ?mocha
mocha
उत्तर
आप मोचा में सीधे यह कर सकते हैं, लेकिन यह थोड़ा मुश्किल है।
var filename = 'x.png'
, boundary = Math.random()
request(app)
.post('/g/' + myDraftGallery._id)
.set('Content-Type', 'multipart/form-data; boundary=' + boundary)
.write('--' + boundary + '\r\n')
.write('Content-Disposition: form-data; name="image"; filename="'+filename+'"\r\n')
.write('Content-Type: image/png\r\n')
.write('\r\n')
.write(fs.readFileSync('test/'+filename))
.write('\r\n--' + boundary + '--')
.end(function(res){
res.should.have.status(200)
done()
})
सामग्री-विन्यास की नाम पैरामीटर क्या आपकी फ़ाइल req.files के माध्यम से के रूप में सुलभ हो जाएगा (तो मेरे उदाहरण के लिए req.files.image) है तुम भी कर सकते हैं: यहाँ एक उदाहरण एक छवि पोस्टिंग है इस तरह एक सरणी मान का उपयोग करें: name = "images []" और आपकी फ़ाइल एक सरणी के माध्यम से उपलब्ध होगी, उदाहरण के लिए: req.files.images [0]
यदि आप पहले से ही इसका उपयोग नहीं कर रहे हैं आपको इस पर एक नज़र डालना चाहिए (मोचा/एक्सप्रेस परीक्षण ~ ~ बिट ~ आसान बनाता है): https://github.com/visionmedia/express/blob/master/test/support/http.js
संपादित करें: एक्सप्रेस 3-बीटा 5 के बाद, एक्सप्रेस सुपरटेस्ट का उपयोग करता है। वर्ष http.js कोड देखने के लिए यहाँ देखो: https://github.com/visionmedia/express/blob/3.0.0beta4/test/support/http.js या बस Supertest की अवधि में ..
आप zombie.js https://github.com/assaf/zombie का उपयोग करने का प्रयास कर सकते हैं, यह मूल कार्यक्षमता के साथ परीक्षण के लिए एक आभासी ब्राउज़र बनाता है। यह एक विशिष्ट इनपुट क्षेत्र के लिए कोई फ़ाइल अनुलग्न और कुकीज़ और सत्र
संबंधित सार का समर्थन करता है सकते हैं: https://gist.github.com/764536
बस टीजे द्वारा इस मॉड्यूल में आए: https://github.com/visionmedia/supertest।
यहां एक उदाहरण है कि आप इसे सुपरटेस्ट मॉड्यूल के साथ कैसे करेंगे।
var should = require('should'),
supertest = require('supertest');
var request = supertest('localhost:3000');
describe('upload', function() {
it('a file', function(done) {
request.post('/your/endpoint')
.field('extra_info', '{"in":"case you want to send json along with your file"}')
.attach('image', 'path/to/file.jpg')
.end(function(err, res) {
res.should.have.status(200); // 'success' status
done();
});
});
});
जब मैं इसे आजमाता हूं, req.files अभी भी अपरिभाषित है। मैं फ़ाइल के लिए bodyParser और कोई ENOENT त्रुटियों का उपयोग कर रहा हूँ। –
var expect = require('expect.js');
supertest = require('supertest');
var request = supertest('localhost:3000');
describe('create album', function() {
it('valid ', function (done) {
request.post('/albums')
.set('Authorization', 'Token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.IjkxMTg3NTk1ODg2MCI.gq32xfcOhv5AiZXJup5al1DGG0piyGWnrjZ5NouauCU')
.field('Content-Type', 'multipart/form-data')
.field('name', 'moni')
.field('description', 'Nature+Pics')
.field('caption', 'nature')
.field('contacts', '["' + 911354971564 + '","' + 919092888819 + '"]')
.field('dimensions', '{"photo1":{"height": 10, "width": 10}, "photo2":{"height": 20, "width": 20}, "photo3":{"height": 20, "width": 20}, "photo4":{"height": 20, "width": 20}, "photo5":{"height": 20, "width": 20}}')
.attach('photo1', '/home/monica/Desktop/pic/1.jpeg')
.attach('photo2', '/home/monica/Desktop/pic/2.jpeg')
.attach('photo3', '/home/monica/Desktop/pic/3.jpeg')
.attach('photo4', '/home/monica/Desktop/pic/4.jpeg')
.attach('photo5', '/home/monica/Desktop/pic/5.jpeg')
.end(function (err, res) {
if (err) {
console.log(err);
} else expect(res.status).to.equal(200);
done();
});
});
});
देते हैं ('छवि') ('फ़ाइल') संलग्न करने के लिए req.files.file की समस्या नहीं परिभाषित समाधान होगा बदल रहा है।
var should = require('should'),
supertest = require('supertest');
var request = supertest('localhost:3000');
describe('upload', function() {
it('a file', function(done) {
request.post('/your/endpoint')
.field('extra_info', '...')
.attach('file', 'path/to/file.jpg')
.end(function(err, res) {
res.should.have.status(200) // 'success' status
done()
});
});
});
- 1. mocha
- 2. mocha
- 3. mocha के साथ node.js http क्लाइंट का परीक्षण कैसे करें?
- 4. Node.js + mocha + webdriverjs: असफल परीक्षण सुइट को मारने
- 5. nodejs mocha suite को परिभाषित नहीं किया गया है त्रुटि
- 6. क्लाउड 9 के साथ मोचा परीक्षण का उपयोग करके, node.js से mocha परीक्षण निष्पादित करें
- 7. RequJS और Mocha के साथ Squire.js का उपयोग करते समय मैं वैश्विक लीक पेश करने से कैसे बचूं?
- 8. परीक्षण फ़ाइल के भीतर से मोचा विकल्पों तक कैसे पहुंचे? <a href="https://github.com/yaymukund/grunt-simple-mocha">https://github.com/yaymukund/grunt-simple-mocha</a></p> <p>मैं विकल्पों मेरी grunt.js में परिभाषित कैसे उपयोग कर सकते हैं प्रत्येक मोचा परीक्षण के भीतर दायर:
- 9. विंडोज़ node.js पर मोचा परीक्षण कैसे चलाएं (त्रुटि: मॉड्यूल नहीं मिल सकता है 'सी: \ cygdrive \ c \ उपयोगकर्ता)
- 10. Node.js रंगों के साथ spawn?
- 11. Yeoman और PhantomJS
- 12. मेरी परियोजना
- 13. मैं मोचा और मोंगोस के साथ कैसे उपयोग कर सकता हूं?
- 14. डेकोरेटर पैटर्न कार्यान्वयन
- 15. NoMethodError: अपरिभाषित विधि `नकली 'मोचा और रेल के साथ 3
- 16. चाई को एसिंक्रोनस मोचा परीक्षणों के साथ काम करने का कोई तरीका है?
- 17. require.js
- 18. मेवेन के लिए मोचा प्लगइन
- 19. RequJS के साथ मोचा परीक्षण चलाते समय मुझे "परिभाषित परिभाषित नहीं किया गया" क्यों दिखाई देता है?
- 20. संगीतकार - गिट रिपोज़ डाउनलोड करना जिसमें कंपोज़र.जेसन
- 21. मेरी spec फ़ाइलों को व्यवस्थित करने के लिए कैसे?
- 22. मैं मोचा के साथ टीमसिटी बिल्ड को कैसे कॉन्फ़िगर कर सकता हूं?
- 23. रूबी: मिनीटेस्ट के साथ क्लास विधि का मज़ाक उड़ा रहा है?
- 24. नोड.जेएस - मोचा और ज़ोंबी के साथ परीक्षण करते समय मुझे लीक क्यों मिलती है?
- 25. प्लगइन लोडिंग से कुछ बंडल रत्नों को बाहर करने के लिए रेल कैसे प्राप्त करूं?
- 26. यमन और मोचा
- 27. क्यों ब्राउज़र में मोचा ने यूआरएल से पता चला वैश्विक रिसाव फेंक दिया लेकिन एक पथ से नहीं?
- 28. मोचा परीक्षण चलाने के लिए Grunt.js का उपयोग
- 29. डेस्कटॉप जैसी वेब एप्लिकेशन बनाने के लिए जावास्क्रिप्ट लाइब्रेरी: एक्स्टजेएस, jQuery, याहूयूआई, मोचा, स्प्राउटकोर, कैप्चिनो, अन्य?
- 30. मोचा
। लिखना अपरिभाषित – dianz