2016-09-16 9 views
6

दो सवाल यहाँ के साथ टेस्ट Node.js एपीआई:जेस्ट (और mockgoose)

1) जेस्ट एक अच्छा विकल्प का परीक्षण करने के Node.js (व्यक्त) एपीआई है?

2) मैं Mockgoose के साथ जेस्ट का उपयोग करने की कोशिश कर रहा हूं, लेकिन मैं यह नहीं समझ सकता कि कनेक्शन कैसे स्थापित करें और परीक्षण कैसे करें। एसओ पर आने से पहले मेरा अंतिम प्रयास यहां दिया गया है:

const Mongoose = require('mongoose').Mongoose 
const mongoose = new Mongoose() 
mongoose.Promise = require('bluebird') 
const mockgoose = require('mockgoose') 

const connectDB = (cb) =>() => { 
    return mockgoose(mongoose).then(() => { 
    return mongoose.connect('mongodb://test/testingDB', err => { 
     if (err) { 
     console.log('err is', err) 
     return process.exit() 
     } 
     return cb(() => { 
     console.log('END') // this is logged 
     mongoose.connection.close() 
     }) 
    }) 
    }) 
} 

describe('test api', connectDB((end) => { 
    test('adds 1 + 2 to equal 3',() => { 
    expect(1 + 2).toBe(3) 
    }) 
    end() 
})) 

त्रुटि Your test suite must contain at least one test है। यह त्रुटि मुझे थोड़ा सा समझ देती है लेकिन मैं इसे हल करने का तरीका नहीं समझ सकता। कोई सुझाव?

आउटपुट:

Test suite failed to run 

Your test suite must contain at least one test. 

उत्तर

1

बहुत देर से इस सवाल का जवाब है, लेकिन मुझे आशा है कि यह मदद करेंगे। यदि आप ध्यान देते हैं, तो आपके वर्णन ब्लॉक में इसके अंदर कोई परीक्षण कार्य नहीं है।

परीक्षण फ़ंक्शन वास्तव में वर्णन करने के लिए पास किए गए कॉलबैक के अंदर है .. तरह, स्टैक तीर फ़ंक्शन कॉलबैक के कारण जटिल है।

इस उदाहरण कोड एक ही समस्या उत्पन्न होगा ..

describe('tests',function(){ 
    function cb() { 
    setTimeout(function(){ 
     it('this does not work',function(end){ 
     end(); 
     }); 
    },500); 
    } 
    cb(); 

    setTimeout(function(){ 
    it('also does not work',function(end){ 
     end(); 
    }); 
    },500); 
}); 

के बाद से मोंगो के लिए कनेक्शन async, जब हंसी पहले समारोह को स्कैन करता है लगता है "परीक्षण" के अंदर वर्णन करने के लिए है, यह विफल रहता है के रूप में वहाँ कोई भी है । यह ऐसा दिखाई नहीं दे सकता है, लेकिन यह वही है जो आप कर रहे हैं।
मुझे लगता है कि इस मामले में आपका समाधान थोड़ा बहुत चालाक था (जिस बिंदु पर यह काम नहीं करता है), और इसे सरल कथन में तोड़ने से इस समस्या को इंगित करने में मदद मिली हो सकती है

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