对象中定义的 JS 函数范围不适用于代码覆盖

我有一个在对象旁边定义的函数。我使用 Qunit 编写测试用例。当我尝试生成代码覆盖率报告时,它给了我错误 var test is not defined。


JS文件


$(function(){

var obj = {

        testFunction: function () {

            return true

        }

    }

});

Qunit 测试用例


QUnit.test("testFunction", function (assert) {

    assert.equal(obj.convertPostCode(), true, "We expect return true");

});


慕运维8079593
浏览 98回答 1
1回答

元芳怎么了

首先 $ 是 jquery,将第一个参数视为选择器,但仍执行该函数但返回一个 jquery 对象。其次, obj 是在该函数范围内定义的,并且在您的测试范围内不可用。要使其可用,请在与测试相同的级别或比测试高一级或多级的外部定义 obj,在 $ 内的函数内部设置其值例子   var obj;$(function(){ obj = {        convertPostCode: function (postcode) {            var len = postcode.length,                index = 0;            switch (len) {                case 5:                    index = 2;                    break;                case 6:                    index = 3;                    break;                case 7:                    index = 4;                    break;                default:                    break;            }            return postcode.substr(0, index) + " " + postcode.substr(index);        }    }});假设测试处于同一级别,您现在应该可以访问 obj
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript