[英]How to mock or stub 'instanceof' in Chai | Sinon | Mocha
[英]How to mock window/document with mocha/chai
当我尝试单元测试getElement
函数时
class BarFoo {
getElement() {
return document.querySelector('#barfoo');
}
}
mocha对document
一无所知,所以我想你可能会这样做:
beforeEach(() => {
global.document = {
querySelector: () => { ... }
}
}
虽然这有效,但我想知道这是否是正确的方法,并且可能有一个包可以解决这个问题,因为如果使用更多的浏览器API,我的方法会变得费力?
当我只需要在窗口上模拟某个函数时,我一直在编写类似于你提出的测试:
it('html test', function () {
const windowRef = global.window;
global.window = {document: {querySelector: () => null}};
const lib = require('lib-that-uses-queryselector');
assert(true);
global.window = windowRef;
});
当我想要一个更完整的窗口对象时,我一直在其他测试中使用mock-browser :
it('html test', function () {
const windowRef = global.window;
const MockBrowser = require('mock-browser').mocks.MockBrowser;
global.window = new MockBrowser().getWindow();
const lib = require('lib-that-uses-window');
assert(true);
global.window = windowRef;
});
请注意,您可能希望在弄乱全局变量后恢复窗口对象( global.window = windowRef;
上面)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.