我正在尝试弄清楚如何使用 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 等。
最佳答案
怎么样,终于自己想通了。
像这样构造它
在你的 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'
}
});
在你实际的 qunit 测试中
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");
});
关于javascript - 使用 qunit 和 mockjax 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118429/