我正在调用一个函数,该函数依赖于全局窗口对象,该对象在通过注入第三方脚本成功运行之前定义了多个变量。即
window.foo = 1;
function calledAfter() {
// inject 3rd party script that depends on
// window.foo !== undefined
}
使用Jasmine和Sinon.js,我如何测试以确保在window.foo
被调用之前设置calledAfter
?
答案 0 :(得分:0)
你不会。这正是为什么全局存储状态是一个非常糟糕的想法的原因之一。 如果函数依赖于特定的配置集,则应该使用集合注入,或者 - 更不优选 - 有一种方法来请求该集合。 一般来说,依赖管理不是单元测试,而是集成测试的目的。