javascript - 使用 qunit 和 mockjax 进行测试

标签 javascript jquery qunit mockjax

我正在尝试弄清楚如何使用 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/

相关文章:

Javascript全局变量简单解决方案

javascript - 使用 Google App Engine Flask dev_appserver.py 运行本地开发时,Chrome 不会刷新静态 JS 文件

javascript - Bootstrap 大下拉菜单不同宽度大小

Ember.js - CircleCI - BrowserStack

javascript - 将 javascript 数组分配给具有属性名称的 JSON 对象列表?

Javascript 滚动处理程序未触发

javascript - 从随机部分加载页面时将类添加到标题

javascript - 打印窗口关闭后执行命令

javascript - 为什么 SauceLabs 在我的 QUnit 测试明显通过时却说它失败了?

javascript - 为什么本次测试中的 Qunit 计数器始终达不到目标值?