是否可以检查DOM.readyState for Jasmine
Is it possible to check DOM.readyState for Jasmine?
我想为我的单元测试创建一个100%覆盖率的结果,不幸的是,它只是不断地说'如果路径没有被采取'。
var state = document.readyState;
if(state === 'interactive' || state === 'complete') {
runRight();
} else {
document.addEventListener('DOMContentLoaded', runRight(), false);
}
我尝试了很多东西,但仍然没有进展,这是我的脚本的唯一问题,有人有一个适当的方法来解决这个问题吗?
对于单元测试,您希望模拟所有不属于您的应用程序的方法/变量。在您的情况下,您必须mock/eclipse文档。readyState和document.addEventListener。
如果模拟文档对象不是你的东西,那么你仍然可以通过将代码更改为更单元可测试的方式来获得体面的覆盖率:
var initialize = function(state, addListener, cb){
if(state === 'interactive' || state === 'complete') {
cb();
} else {
addListener('DOMContentLoaded', cb(), false);
}
}
initialize(document.readyState, document.addEventListener, runRight);
然后在单元测试中,您将使用不同的输入参数测试initialize方法。
作为旁注,100%的UT覆盖通常很难在合理的努力下实现。
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Is onfling available for html, html5
- Setting default onclick behavior for <img> tag in gene
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- Javascript setTimeout for an array
- 双“for”循环(循环)
- 引用vue.js中v-for中的上一个值
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- GWT (or javascript) library for couchDB
- Javascript在for循环中等待处理请求
- Livereload for node.js.有可能吗
- jQuery setTimeOut: in for-loop
- 我没有'I don’我不理解for在循环中的用途
- 如何知道javascript for语句中的所有结果是否都是错误的
- readyState event for HEADERS_RECEIVED using jQuery.ajax
- 是否可以检查DOM.readyState for Jasmine