【发布时间】:2017-05-27 22:22:05
【问题描述】:
我正在寻找一种方法来设置 navigator.serviceWorker 以对我的 service worker 进行单元测试。我当前的 JSDOM 设置如下所示:
import { JSDOM } from 'jsdom';
const dom = new JSDOM('<!DOCTYPE html><html><head></head><body></body></html>');
global.window = dom.window;
global.document = dom.window.document;
Object.keys(global.window).forEach(property => {
if (typeof global[property] === 'undefined') {
global[property] = global.window[property];
}
});
global.navigator = {
userAgent: 'node.js'
};
我已经尝试将global.navigator = ... 注释为global.navigator = global.window.navigator。但是,以下console.log(global.navigator.serviceWorker) 和console.log(navigator.serviceWorker) 在我的单元测试中都返回undefined:
describe('Service Worker', () => {
it('should register a service worker and cache files on install', () => {
console.log(navigator.serviceWorker); // undefined
// navigator.serviceWorker.register() // not used yet since undefined
});
});
【问题讨论】:
标签: javascript unit-testing mocha.js service-worker jsdom