2012-07-13 18 views
13

मैं वस्तुओं के परिणाम बनाने/हटाने (मोंगोज़ के माध्यम से मोंगो डीबी में) परीक्षण करने की कोशिश कर रहा था।जैस्मीन (मोचा) नेस्टेड "इसे" परीक्षण

समस्या बनाने वाली समस्या एसिंक है और यह कॉलबैक फ़ंक्शन में बनाई गई आइटम की आईडी लौटाती है, मुझे हटाए गए आइटम को इस आईडी की आवश्यकता है, इसलिए मैंने निम्नलिखित कोड को मोचा (विभिन्न तरीकों से) करने की कोशिश की लेकिन यह काम नहीं किया।

describe('Item Model', function(){ 

    it('should be able to create item', function(done){ 
    var item = new Item({name: {first: "Alex"}); 
    item.save(function(err, data){ 

     it('should be able to deleted created item', function(done){      
     Item.delete({_id: data.id}, function(err, data){ 
     done(err); 
     }); 
     }); 

    }) 
    }); 

}); 

क्या इस तरह के परीक्षण मोचा या चमेली में लागू किया जा सकता है?

उत्तर

7

मेरे पास इसके लिए दो परीक्षण होंगे। एक जो परीक्षण का परीक्षण कर रहा है और एक परीक्षण को हटा देता है।

coffeescript में कुछ इस तरह दिखाई देना चाहिए

describe 'Item model',() -> 
    item = '' 
    before (done) -> 
     item = new Item {name: {first: "Alex"}} 
     done 
    describe 'When inserting Item',() -> 
     before (done) -> 
      item.save done 
     it 'should have been insterted' -> 
      #CHECK HERE IT IF IT IS INSERTED 

    decribe 'when deleting',() -> 
     before (done) -> 
      item.save (err,data) -> 
       return done err if err 
       Item.delete {_id: data.id}, done 
     it 'should have been deleted' -> 
      #CHECK HERE IT IF IT IS Deleted 
+0

ठीक है, मैं इसे आज़माउंगा। धन्यवाद। – WHITECOLOR

+15

मुझे अभी भी पसंद आएगा अगर नेस्टेड चीज किया जा सकता है। – Zlatko

+45

कॉफीस्क्रिप्ट उत्तरों के साथ जावास्क्रिप्ट प्रश्नों का उत्तर देने के लिए यह एक बुरा अभ्यास है। मुझे कॉफीस्क्रिप्ट पसंद है, लेकिन सभी जेएस प्रोग्रामर इसे पढ़ और समझ नहीं सकते। –

4

इस मुद्दे देखें: https://github.com/visionmedia/mocha/issues/438

लगता है कि इरादा करने के लिए डी-युग्मित किया परीक्षण के लिए मजबूर किया जा सके। असुविधाजनक और संभवतः अधिक मजाक करने की आवश्यकता होने पर, यह व्यवहार उपयोगी है क्योंकि इसे कम पुन: परीक्षण की आवश्यकता होती है और गलत होने पर बिल्कुल स्पष्ट छवि प्रदान करती है।

यानी वहां 2 परीक्षण, परीक्षण एक और परीक्षण बी, जहां बी

टेस्ट एक टूटता ए पर निर्भर है कर रहे हैं, बी इसलिए रूप में अच्छी तरह तोड़ दिया। आप टेस्ट ए को तोड़ने वाले फिक्स को ठीक करते हैं, लेकिन अब यह आश्चर्यचकित हो सकता है कि परीक्षण बी आपके फिक्स की प्रक्रिया में या किसी असंबंधित कारण के लिए टूट गया था।

जब परीक्षण एक दूसरे पर भरोसा नहीं करते हैं, तो आपके पास बेहतर जानकारी और कम आश्चर्य होती है।

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