जैसा कि इस jsFiddle में देखा गया है, मेरे पास एक फ़ंक्शन 'init' है जो एक बटन को कॉन्फ़िगर करता है ताकि जब क्लिक किया जाए तो यह प्रगति संवाद खुलता है और अजाक्स कॉल जारी करता है। मैं इकाई परीक्षण करने के लिए इस जावास्क्रिप्ट कोड (QUnit उपयोग करते हुए) चाहते हैं, और निम्नलिखित मामलों की जांच:मैं इस जावास्क्रिप्ट फ़ंक्शन का परीक्षण कैसे करूं, जिसमें अजाक्स कॉल का मज़ाक उड़ाया जा सकता है?
- अजाक्स कॉल सफल होता है
- अजाक्स कॉल के विफल होने
मैं कम से कम अजाक्स कॉल बाहर नकली करने की जरूरत है और यूनिट परीक्षण कार्यान्वयन के आधार पर window.open
पर कॉल, और अन्य कॉल मुझे यकीन है।
मैं अपने कोड के लिए क्विनिट यूनिट परीक्षण कैसे लिख सकता हूं जो इन दो परिदृश्यों का परीक्षण करता है?
संपादित करें: कोड परीक्षण किया जाना चाहिए कि:
सब, डाउनलोड कीvar statusmod = (function() {
var spinner = $("#spinner");
var init = function(id) {
var progressDialog = $("#progressdialog-content").dialog({
autoOpen: false,
title: "Launching Status Page"
});
var errorDialog = $("#errordialog-content").dialog({
autoOpen: false,
modal: true,
buttons: {
"OK": function() {
$(this).dialog("close");
}
}
});
var btn = $("#button-status");
btn.button().click(function() {
spinner.show();
progressDialog.dialog("open");
var url = $.validator.format("/api/binid/?id={0}", id);
// Call Web service to get binary ID
$.ajax({
url: url,
dataType: "json"
}).done(function(data) {
window.open($.validator.format("http://status/?Page=Status&Id={0}", data.Id), target = "_newtab");
}).fail(function(jqXHR, msg, errorThrown) {
errorDialog.dialog("open");
}).always(function() {
progressDialog.dialog("close");
});
return false;
});
};
return {
init: init,
_spinner: spinner
};
}());
ajax कॉल मजाक के लिए mockjax पर विचार करें, एक आकर्षण – rsplak
@rsplak तरह काम करता है आप कृपया परीक्षण चलाने के लिए कैसे दिखाया जा सका अजाक्स कॉलबैक लागू किया गया है के बाद? इस समय, कैसे नहीं देख सकता। – aknuds1