为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2022-07-21 09:54:40
我有一个在对象旁边定义的函数。我使用 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");});
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

首先 $ 是 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


查看完整回答
反对 回复 2022-07-21
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信