简体   繁体   English

使用qunit和mockjax进行测试

[英]Testing with qunit and mockjax

I am trying to figure out how to test this javascript function aduequately using qunit and mockjax 我试图找出如何使用qunit和mockjax aduequately测试这个javascript函数

My javascript is set up with the revealing module pattern, im new to unit testing so this is kind of driving me up a wall 我的javascript设置了揭示模块模式,我是单元测试的新手,所以这有点推动我的墙

my.someMethod = function (someId, completedHandler) {
        $.ajax({
            dataType: "json",
            url: my.someUrl,
            traditional: true,
            data: {
                someId : someId
            },
            success: function () {

                if (completedHandler !== undefined) {
                    completedHandler();
                }
            }
        });
    };

Like i want to test if the correct url is being used, if the id being passed in is the right one, making sure the ajax is being called etc. 就像我想测试是否正在使用正确的url,如果传入的id是正确的,请确保调用ajax等。

How about that, figured it out myself finally. 怎么样,终于弄清楚了自己。

Structure it somethng like so 结构如此

In your javascript method 在你的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);
                }
            }
        });
    };

Set up your mockjax 设置你的mockjax

$.mockjax({
            url: "someActualUrl",
            dataType: 'json',
            responseText:
                {
                    testResult: 'AJAX Called'                           
                }
        });

And in your actual qunit test 并在你的实际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");
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM