javascript - 在 Document.ready 上调用函数的测试用例

标签 javascript jquery qunit blanket.js

我的JS代码如下:

if (typeof IPL === "undefined") {
    IPL = {};
}

/// <summary>Declare Namespace IPL.Register</summary>
if (typeof IPL.Register === "undefined") {
    IPL.Register = {};
}

$(document).ready(function () {
    IPL.Register.Print.initialize();
});

/// <summary>Declare Namespace IPL.Register.Print</summary>
IPL.Register.Print =
{
    /// <summary>Function to call on initialize page.</summary>
    initialize: function () {
        window.onload = function () {
            window.print();
        };
    }
};

当我运行下面提到的测试用例(Qunit.js 和毯子.js)时,不会调用 Document.ready 函数,并且代码覆盖率不会覆盖该行。 下面的测试用例工作正常,但它只包括最后几行代码和窗口加载时的初始化函数。

test("initialize test", 1, function () {
    var result = IPL.Register.Print.initialize();
    equal(undefined, result, "passed");
});

有人请协助如何编写测试用例以在文档加载时执行函数?

最佳答案

做到这一点的最佳方法是根本不测试加载事件。只需将事件处理程序放入命名函数中,然后测试该函数的行为即可。

/// <summary>Declare Namespace IPL.Register.Print</summary>
IPL.Register.Print = {
  /// <summary>Function to call on initialize page.</summary>
  initialize: function() {
    window.onload = function() {
      window.print();
    };
  },
  print: function() {
    window.print();
  }
};

test("initialize test", 1, function() {
  var result = IPL.Register.Print.print();
  equal(undefined, result, "passed");
});

http://jsfiddle.net/Tintin37/vpqjsr8L/

load事件只是运行你的函数,你想通过测试load事件具体实现什么目的?

关于javascript - 在 Document.ready 上调用函数的测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39530140/

相关文章:

javascript - 通过javascript从contenteditable div中获取文本内容

javascript - 无需 F12 工具即可在 Internet Explorer 上恢复 javascript 日志和错误

jquery - 如何在 Visual Studio 2019 中获取 jQuery 智能感知

javascript - 如何使用 Qunit 测试 jquery-ui datepicker

javascript - 使用 Qunit 断言函数抛出异常

javascript - 纯 JavaScript : Center an absolute position div in body

javascript - 如何克隆数组中的对象项?

javascript - $ 函数不工作(丢失?)

javascript - ajax调用wcf服务出错

javascript - 如何通过本地服务器而不是文件系统使用 Grunt 运行 QUnit 测试?