我正在尝试使用mocha和jsdom测试javascript文件(我们称其为hello.js)。我有几个单元测试;每个测试基本上都会设置一些窗口属性,调用hello.js,并检查窗口属性值。测试似乎正在以某种方式运行。但是,在第一次测试后,mocha似乎使用了“缓存的” hello.js(记录仅在第一次测试中显示)。
有人可以告诉我如何确保每次测试都重新加载hello.js吗?
const expect = require('chai').expect;
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
var dom = (new JSDOM(`<!DOCTYPE html><html><head></head><body></body></html>`));
describe('hello', ()=>{
afterEach(()=>{
dom = (new JSDOM(`<!DOCTYPE html><html><head></head><body></body></html>`));
global.window = {};
document = {};
location = {};
});
it('should test A', ()=> {
global.window = dom.window;
global.window.document.cookie = "test=kiwi";
document = global.window.document;
const hello = require('../public/hello.js');
expect(document.getElementsByTagName('IFRAME').length).to.equal(1);
});
it('should test B', ()=> {
global.window = dom.window;
global.window.document.cookie = "test=apple";
document = global.window.document;
const hello = require('../public/hello.js');
expect(document.getElementsByTagName('IFRAME').length).to.equal(0);
});
});
答案 0 :(得分:0)
答案 1 :(得分:0)