2015-05-22 15 views
9

पर असफल मोचा परीक्षण कैसे पंजीकृत करें मैं कोड पर जावास्क्रिप्ट मोचा यूनिट परीक्षण लिख रहा हूं जो वादे देता है। मैं Chai as Promised लाइब्रेरी का उपयोग कर रहा हूं। मैं उम्मीद करता हूं कि निम्नलिखित न्यूनतम यूनिट परीक्षण विफल हो जाएंगे।एक वादा

var chai = require("chai"); 
var chaiAsPromised = require("chai-as-promised"); 
chai.use(chaiAsPromised); 
chai.should(); 

var Promise = require("bluebird"); 

describe('2+2', function() { 
    var four = Promise.resolve(2 + 2); 
    it('should equal 5', function() { 
     four.should.eventually.equal(5); 
    }) 
}); 

जब मैं इस परीक्षण चलाने के लिए, मैं कंसोल के लिए मुद्रित एक अभिकथन त्रुटि देखते हैं, लेकिन परीक्षण अभी भी गुजर के रूप में गिना जाता है।

> mocha test/spec.js 


    2+2 
    ✓ should equal 5 
Unhandled rejection AssertionError: expected 4 to equal 5 


    1 passing (10ms) 

मैं इस परीक्षा को कैसे लिखूं ताकि एक असफल दावा परीक्षण को विफलता के रूप में गिनने का कारण बनता है?

उत्तर

10

मुझे दावे के परिणाम को वापस करने की आवश्यकता है। यह परीक्षण अपेक्षित के रूप में विफल रहता है।

it('should equal 5', function() { 
     return four.should.eventually.equal(5); 
    }) 
+1

क्या होगा यदि आपको एक से अधिक दावे करने की आवश्यकता है ... – Jeremy

+2

एकाधिक दावों को गठबंधन करने के लिए 'Promise.all' का उपयोग करें। –

18

किसी और नहीं वादों से इकाई परीक्षण में नाकाम रहने में विफल रहा है दावे के साथ समस्या हो, तो मुझे पता चला कि आप कार्य करने के लिए done पारित नहीं करना चाहिए।

it('should handle promises', function(/*no done here*/) { 

    return promiseFunction().then(function(data) { 
     // Add your assertions here 
    }); 

    // No need to catch anything in the latest version of Mocha; 
    // Mocha knows how to handle promises and will see it rejected on failure 

}); 

This article सही दिशा में मुझे बताया: इसके बजाय, सिर्फ वादा लौट आते हैं। सौभाग्य!

+1

ब्रह्मांड में कभी भी सबसे अच्छा जवाब। खैर, ठीक है, आप देख सकते हैं कि मैं अपनी जावास्क्रिप्ट अज्ञानता के खिलाफ हाल ही में थोड़ा सा कुश्ती कर रहा हूं - लेकिन प्लस तरफ, यह मुझे छोटे पक्षों के लिए आभारी बनाता है। :) –

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