कुछ हद तक यह बुनियादी कार्यक्षमता नहीं है
आप इस तरह से एक कस्टम मैचर जोड़ सकते हैं:
JasmineExtensions.js
yourGlobal.addExtraMatchers = function () {
var addMatcher = function (name, func) {
func.name = name;
jasmine.matchers[name] = func;
};
addMatcher("toBeGreaterThanOrEqualTo", function () {
return {
compare: function (actual, expected) {
return {
pass: actual >= expected
};
}
};
}
);
};
वास्तव में आप अपने मिलानकर्ता के लिए एक कंस्ट्रक्टर को परिभाषित कर रहे हैं - यह एक फ़ंक्शन है जो एक मिलानकर्ता ऑब्जेक्ट को लौटाता है।
इससे पहले कि आप 'बूट' को शामिल करें। मूल मिलान बूट समय पर लोड किए जाते हैं।
आपकी html फ़ाइल इस तरह दिखनी चाहिए:
<!-- jasmine test framework-->
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<!-- custom matchers -->
<script type="text/javascript" src="Tests/JasmineExtensions.js"></script>
<!-- initialisation-->
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
फिर अपने boot.js में चमेली को परिभाषित करने के बाद मिलान करने वालों को जोड़ने के लिए कॉल जोड़ें, लेकिन चमेली से पहले ।getEnv ()। Get env वास्तव में एक (थोड़ा भ्रामक नाम दिया गया) सेटअप कॉल है।
मैच करने वालों को Env कंस्ट्रक्टर में SetupCoreMatchers पर कॉल करने के लिए सेटअप मिलता है।
/**
* ## Require & Instantiate
*
* Require Jasmine's core files. Specifically, this requires and attaches all of Jasmine's code to the `jasmine` reference.
*/
window.jasmine = jasmineRequire.core(jasmineRequire);
yourGlobal.addExtraMatchers();
/**
* Since this is being run in a browser and the results should populate to an HTML page, require the HTML-specific Jasmine code, injecting the same reference.
*/
jasmineRequire.html(jasmine);
/**
* Create the Jasmine environment. This is used to run all specs in a project.
*/
var env = jasmine.getEnv();
वे नमूना परीक्षणों में कस्टम मिलान करने वालों को जोड़ने का एक और तरीका दिखाते हैं, हालांकि यह जिस तरह से काम करता है वह प्रत्येक का उपयोग करके प्रत्येक परीक्षण से पहले माचिस को फिर से बनाना है beforeEach
। यह बहुत भयानक लगता है इसलिए मैंने सोचा कि मैं इसके बजाय इस दृष्टिकोण के साथ जाऊंगा।