我想弄清楚如何使用qunit和mockjax来测试这个javascript函数
我的javascript设置了揭示模块模式,我是单元测试的新手,所以这有点让我起了墙
my.someMethod = function (someId, completedHandler) {
$.ajax({
dataType: "json",
url: my.someUrl,
traditional: true,
data: {
someId : someId
},
success: function () {
if (completedHandler !== undefined) {
completedHandler();
}
}
});
};
就像我想测试是否正在使用正确的url一样,如果传入的id是正确的,那么确保调用ajax等。
答案 0 :(得分:2)
怎么样,终于弄明白了。
结构如此
在你的javascript方法中
my.someMethod = function (someId, completedHandler) {
$.ajax({
dataType: "json",
url: my.someUrl,
traditional: true,
data: {
someId : someId
},
success: function (data) {
if (completedHandler !== undefined) {
completedHandler(someId, my.someUrl, data.testResult);
}
}
});
};
设置你的mockjax
$.mockjax({
url: "someActualUrl",
dataType: 'json',
responseText:
{
testResult: 'AJAX Called'
}
});
在你的实际测试中
test("someMethod calls ajax", function () {
namespace.someMethod("id1",
function (someId, someUrl, someTestResult) {
test("someMethod ajax test", function () {
assert.strictEqual(someId, "id1");
assert.strictEqual(someUrl, "someActualUrl");
assert.strictEqual(someTestResult, "AJAX Called");
});
start();
});
ok(true, "Ajax Called");
});