单元测试包含setTimeout的函数

时间:2017-08-02 15:00:30

标签: javascript unit-testing karma-jasmine code-coverage settimeout

我有一个包含setTimeouts的函数。我正在尝试进行单元测试,但是在代码覆盖率报告中,它总是显示setTimeout中的代码没有执行。

这是代码。

var func = function(str, type) {
  var t1 = setTimeout(function() {
    document.getElementById("ledtext").style.color = "#631313";
  }, 100);
  var t2 = setTimeout(function() {
    document.getElementById("ledtext").style.color = "#ea0707";
  }, 300);
  var t3 = setTimeout(function() {
    document.getElementById("ledtext").style.color = "#631313";
  }, 500);
  var t4 = setTimeout(function() {
    document.getElementById("ledtext").style.color = "#ea0707";
    localThisObject.startSequence(type);
  }, 700);
}

enter image description here

代码覆盖率

如何使用Karma-jasmine进行上述代码的单元测试?
这是devDependencies的列表:

"devDependencies": {
    "jasmine-core": "^2.2.0",
    "karma": "^0.12.31",
    "karma-chrome-launcher": "^0.1.7",
    "karma-coverage": "^1.1.1",
    "karma-fixture": "^0.2.6",
    "karma-htmlfile-reporter": "^0.3.5",
    "karma-jasmine": "^0.3.5",
    "karma-phantomjs-launcher": "^1.0.4"
}

jsfiddle
P.S.I检查了this个问题。它没有解决我的问题。

0 个答案:

没有答案