Sinon.JS 7

Assertions




sinon

Assertions

Sinon.JS मुखरता के एक सेट के साथ जहाज है जो जासूसों और स्टब्स पर सबसे व्यवहार सत्यापन विधियों और गुणों को दर्पण करता है। मुखरता का उपयोग करने का लाभ यह है कि स्टब्स और जासूसों पर विफल उम्मीदों को सीधे विस्तृत और सहायक त्रुटि संदेशों के साथ जोर विफलता के रूप में व्यक्त किया जा सकता है।

यह सुनिश्चित करने के लिए कि परिक्षण आपके परीक्षण ढांचे के साथ अच्छी तरह से एकीकृत है, आपको या तो sinon.assert.fail या sinon.assert.failException को अनुकूलित करना चाहिए और sinon.assert.expose और sinon.assert.pass में sinon.assert.expose sinon.assert.pass

मुखर या स्टब्स के साथ अभिकथन का उपयोग किया जा सकता है।

"test should call subscribers with message as first argument" : function () {
    var message = "an example message";
    var spy = sinon.spy();

    PubSub.subscribe(message, spy);
    PubSub.publishSync(message, "some payload");

    sinon.assert.calledOnce(spy);
    sinon.assert.calledWith(spy, message);
}

एपीआई का दावा है

sinon.assert.fail(message)

इस विधि को कॉल करने से हर जोर विफल हो जाता है।

डिफ़ॉल्ट रूप से यह sinon.assert.failException प्रकार की त्रुटि फेंकता है।

यदि परीक्षण फ्रेमवर्क विशिष्ट अपवाद की जाँच करके अभिकथन त्रुटियों की तलाश करता है, तो आप केवल फेंके गए अपवाद के प्रकार को ओवरराइड कर सकते हैं। यदि वह आपकी पसंद के परीक्षण ढांचे के साथ फिट नहीं है, तो सही काम करने के लिए fail विधि को ओवरराइड करें।

sinon.assert.failException;

AssertError चूक।

sinon.assert.pass(assertion);

जिसे हर बार assertion पास assertion जाता है।

डिफ़ॉल्ट कार्यान्वयन कुछ नहीं करता है।

sinon.assert.notCalled(spy);

अगर spy कभी नहीं कहा जाता है

sinon.assert.called(spy);

अगर spy को कम से कम एक बार बुलाया गया तो पास।

sinon.assert.calledOnce(spy);

गुजरता है अगर spy को एक बार और केवल एक बार बुलाया गया था।

sinon.assert.calledTwice(spy);

गुजरता है अगर spy को दो बार बिल्कुल बुलाया गया था।

sinon.assert.calledThrice(spy)

गुजरता है अगर spy को तीन बार कहा जाता है।

sinon.assert.callCount(spy, num)

गुजरता है अगर spy बिल्कुल num समय कहा जाता था।

sinon.assert.callOrder(spy1, spy2, ...)

यदि निर्दिष्ट आदेश में जासूसों को बुलाया गया था तो गुजरता है।

sinon.assert.calledOn(spyOrSpyCall, obj)

गुजरता है अगर spy कभी obj साथ this मूल्य के रूप में बुलाया गया था।

यह एक समर्पित जासूस कॉल पर जोर देना संभव है: sinon.assert.calledOn(spy.firstCall, arg1, arg2, ...);

sinon.assert.alwaysCalledOn(spy, obj)

गुजरता है अगर spy हमेशा obj साथ this मूल्य के रूप में कहा जाता था।

sinon.assert.calledWith(spyOrSpyCall, arg1, arg2, ...);

spy प्रदान की गई दलीलों के साथ बुलाया गया था तो गुजरता है।

यह एक समर्पित जासूस कॉल पर जोर देना संभव है: sinon.assert.calledWith(spy.firstCall, arg1, arg2, ...);

sinon.assert.alwaysCalledWith(spy, arg1, arg2, ...);

यदि spy को हमेशा प्रदान की गई दलील के साथ बुलाया जाता है।

sinon.assert.neverCalledWith(spy, arg1, arg2, ...);

अगर तर्क दिए गए तर्कों के साथ spy को कभी नहीं बुलाया गया था।

sinon.assert.calledWithExactly(spyOrSpyCall, arg1, arg2, ...);

अगर spy को प्रदान किए गए तर्कों और अन्य लोगों के साथ नहीं बुलाया गया तो पास।

यह एक समर्पित जासूस कॉल पर जोर देना संभव है: sinon.assert.calledWithExactly(spy.getCall(1), arg1, arg2, ...);

sinon.assert.alwaysCalledWithExactly(spy, arg1, arg2, ...);

अगर spy हमेशा प्रदान किए गए तर्कों और किसी अन्य के साथ नहीं कहा जाता है तो गुजरता है।

sinon.assert.calledWithMatch(spyOrSpyCall, arg1, arg2, ...)

यदि spy को मिलान वाले तर्कों के साथ बुलाया गया था, तो गुजरता है।

यह उसी तरह से व्यवहार करता है जैसे कि sinon.assert.calledWith(spy, sinon.match(arg1), sinon.match(arg2), ...)

एक समर्पित जासूस कॉल पर जोर देना संभव है: sinon.assert.calledWithMatch(spy.secondCall, arg1, arg2, ...);

sinon.assert.alwaysCalledWithMatch(spy, arg1, arg2, ...)

गुजरता है अगर spy हमेशा मिलान तर्कों के साथ कहा जाता था।

यह उसी तरह से व्यवहार करता है जैसे कि sinon.assert.alwaysCalledWith(spy, sinon.match(arg1), sinon.match(arg2), ...)

sinon.assert.calledWithNew(spyOrSpyCall)

spy अगर new ऑपरेटर के साथ बुलाया गया था।

एक समर्पित जासूस कॉल पर दावा करना संभव है: sinon.assert.calledWithNew(spy.secondCall, arg1, arg2, ...);

sinon.assert.neverCalledWithMatch(spy, arg1, arg2, ...)

अगर spy को कभी भी मेल खाने वाले तर्कों के साथ नहीं बुलाया जाता है।

यह वैसे ही व्यवहार करता है जैसे कि sinon.assert.neverCalledWith(spy, sinon.match(arg1), sinon.match(arg2), ...)

sinon.assert.threw(spyOrSpyCall, exception);

अगर spy दिए गए अपवाद को फेंक देता है।

अपवाद एक String हो सकता है जो अपने प्रकार, या एक वास्तविक वस्तु को दर्शाता है।

यदि केवल एक तर्क प्रदान किया जाता है, तो spy गुजरती है अगर spy ने कभी भी कोई अपवाद नहीं फेंका।

एक समर्पित जासूस कॉल पर जोर देना संभव है: sinon.assert.threw(spy.thirdCall, exception);

sinon.assert.alwaysThrew(spy, exception);

ऊपर की तरह, केवल जासूस के लिए सभी कॉल के लिए आवश्यक है।

sinon.assert.match(actual, expectation);

तर्कों का एक मैच माना जा सकता है, तो परीक्षण करने के लिए sinon.match का उपयोग करता है।

var sinon = require('sinon');

describe('example', function(){
    it('should match on `x` property, and ignore `y` property', function() {
        var expected = {x: 1},
            actual = {x: 1, y: 2};

        sinon.assert.match(actual, expected);
    });
});

sinon.assert.expose(object, options);

परीक्षण फ्रेमवर्क के साथ बेहतर एकीकरण के लिए, किसी अन्य ऑब्जेक्ट में अभिकथन का प्रस्ताव करता है। उदाहरण के लिए, JsTestDriver वैश्विक दावे का उपयोग करता है, और Sinon.JS अभिकथन उनके साथ प्रकट होता है, आप कर सकते हैं।

sinon.assert.expose(this);

यह आपको assertCalled(spy) , assertCallOrder(spy1, spy2, ...) इत्यादि देगा।

विधि दो विकल्पों के साथ एक वैकल्पिक विकल्प ऑब्जेक्ट को स्वीकार करती है।

उपसर्ग
जोर देने के लिए एक उपसर्ग है। डिफ़ॉल्ट रूप से यह "जोर" है, इसलिए sinon.assert.called हो जाता है। रिक्त स्ट्रिंग पास करने से, उजागर विधि target.called हो जाएगी।
includeFail
डिफ़ॉल्ट रूप से true , failException और failException गुणों की failException है