Javascript 对象中定义的JS函数范围不适用于代码覆盖率
我有一个函数,它是在一个对象中定义的。我使用Qunit编写测试用例。当我试图生成代码覆盖率报告时,它给我的错误是未定义var测试 JS文件Javascript 对象中定义的JS函数范围不适用于代码覆盖率,javascript,code-coverage,qunit,Javascript,Code Coverage,Qunit,我有一个函数,它是在一个对象中定义的。我使用Qunit编写测试用例。当我试图生成代码覆盖率报告时,它给我的错误是未定义var测试 JS文件 $(function(){ var obj = { testFunction: function () { return true } } }); Qunit测试用例 QUnit.test("testFunction", function (assert) { assert.equal
$(function(){
var obj = {
testFunction: function () {
return true
}
}
});
Qunit测试用例
QUnit.test("testFunction", function (assert) {
assert.equal(obj.convertPostCode(), true, "We expect return true");
});
首先,$作为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);
}
}
});
假设测试在同一级别上,您现在应该可以访问objYes,它是Jquery函数