单元测试Java脚本 - 使用QUnit伪造XRM

时间:2016-10-19 03:41:48

标签: javascript mocking qunit

我有一个js函数,我希望使用QUnit进行单元测试。这是一个简单的函数,我传递了我想从表单中隐藏的字段名称。我也在这里使用Mocking框架:[link] https://github.com/ambek/XrmPage-Mock

function HideField(field) {
    Xrm.Page.getControl(field).setVisible(false);
};

My Tests.js文件如下所示:

var Xrm;

QUnit.test("Testing Hide Field Function", function (assert) {

    var PageControls = new Array();
    PageControls.push(CreateSimpleControlWithAttribute("NewField", "M",  "Type of Residence"));
    var page = new XrmPageMock("{607C16D1-7C53-4023-B20B-13E4F1C6A9D3}", PageControls, 1);
    Xrm = new XrmPageMock(page);
    HideField('NewField');
    assert.equal(XRM.page.getControl('NewField').getVisible(),false,  'Passsed');

});

在执行我的测试时,我收到此错误:

  

无法获得财产' getControl'未定义或空引用

有谁知道为什么我的嘲笑/假装出错了?

1 个答案:

答案 0 :(得分:0)

以下陈述中只是一个拼写错误:

assert.equal(XRM.page.getControl('NewField').getVisible(),false, 'Passsed');

新陈述是(更正单词"页面")

assert.equal(XRM.Page.getControl('NewField').getVisible(),false, 'Passsed');