【发布时间】:2016-02-09 15:07:11
【问题描述】:
如何使用测试框架Sinon 的sandbox.stub 覆盖例如navigator.language 或 navigator.userAgent 用于测试?
当我尝试使用以下内容时:
suite('agent', function () {
var sandbox;
setup(function () {
// create sandbox environment for mocking about
sandbox = sinon.sandbox.create();
});
teardown(function () {
// restore the environment as it was before
sandbox.restore();
});
test('language', function () {
assert.equal(au.env.agent.language, navigator.language);
if (!navigator.language) assert.equal(au.env.agent.language, 'de');
var lang = "test_URK";
sandbox.stub(window.navigator, 'language', lang);
assert.equal(au.env.agent.language, lang);
});
});
然后我会得到以下错误:Cannot stub non-existent own property language:
这些存根都不能按预期工作:
- sandbox.stub(window.navigator, 'language', lang);
- sandbox.stub(navigator, 'browserLanguage', lang);
正在模拟 导航器对象。
有什么提示吗?
【问题讨论】:
标签: javascript unit-testing mocha.js sinon web-component-tester