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

Unit Testing Java Script - Fake XRM with QUnit

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

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

我的 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');

});

在执行我的测试时,我得到这个错误:

Unable to get property 'getControl' of undefined or null reference

有谁知道为什么我的 mocking/faking 出错了?

这只是以下语句中的错字:

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

新语句是(更正单词"page")

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