我正在尝试测试一些客户端代码,为此我需要使用Mocha/Sinon模拟window.location.href
属性的值。
迄今为止我尝试过以下方法 (使用此示例):
describe('Logger', () => {
it('should compose a Log', () => {
var stub = sinon.stub(window.location, 'href', 'http://www.foo.com');
});
});
跑步者显示以下错误:
类型错误:自定义存根应该是一个函数或属性描述符
将测试代码更改为:
describe('Logger', () => {
it('should compose a Log', () => {
var stub = sinon.stub(window.location, 'href', {
value: 'foo'
});
});
});
出现了以下错误:
TypeError: 尝试将字符串属性 href 包装为函数
将函数作为第三个参数传递给 sinon.stub
也不起作用。
有没有办法提供一个假的 window.location.href
字符串,同时避免重定向(因为我是在浏览器中进行测试)?
const originalWindow = global.window
,然后在测试结束时恢复它global.window = originalWindow
。 - Daniel Elkington