如何在 jasmine 中使用 window 对象?
How can I use the window object in jasmine?
我正在尝试在 Jasmine 测试中使用 window
对象。
在测试文件中loader_spec.s
我有:
use strict;
var setupModuleLoader = require(../src/loader);
describe("setupModuleLoader", function() {
it(exposes angular on the window, function() {
setupModuleLoader(window);
expect(window.angular).toBeDefined();
});
});
在 loader.js
文件中我有:
use strict;
function setupModuleLoader(window) {
var angular = window.angular = {}; //creates empty angular object in browser's `window`
}
module.exports = setupModuleLoader;
我在 运行 测试时收到一个参考错误,即 window
未定义。
我正在使用这个 boilerplate 进行这个测试,它使用 PhantomJS。
好吧 window 对象代表浏览器 window.If 你 运行 来自浏览器的 jasmine 单元测试然后它在你的脚本中可用否则它不可用。
运行 来自控制台意味着你是 运行 javascript 来自脚本 host.So 主机无法找到 Window对象。
浏览器选项不包括全局对象的别名,window和self。
例如浏览器:['Chrome']
如果您想访问 window
对象,您应该确保在浏览器中测试 运行,而不是 node.js。
$ gulp test:unit
上述 boilerplate runs plain mocha 中的任务测试并且不会启动浏览器。要访问 window
和其他特定于浏览器的对象,您应该将测试放在 /tests/integration
目录中,并且 运行 它们像这样:
$ gulp test:integration
将代码单元与执行上下文松散耦合是一种很好的做法,这就是样板中的单元测试不启动浏览器的原因。他们不希望代码单元知道任何关于 window
或其他浏览器对象的信息。
当您的代码依赖于某些外部内容时,另一种解决问题的方法是为您的依赖项创建模拟。
我正在尝试在 Jasmine 测试中使用 window
对象。
在测试文件中loader_spec.s
我有:
use strict;
var setupModuleLoader = require(../src/loader);
describe("setupModuleLoader", function() {
it(exposes angular on the window, function() {
setupModuleLoader(window);
expect(window.angular).toBeDefined();
});
});
在 loader.js
文件中我有:
use strict;
function setupModuleLoader(window) {
var angular = window.angular = {}; //creates empty angular object in browser's `window`
}
module.exports = setupModuleLoader;
我在 运行 测试时收到一个参考错误,即 window
未定义。
我正在使用这个 boilerplate 进行这个测试,它使用 PhantomJS。
好吧 window 对象代表浏览器 window.If 你 运行 来自浏览器的 jasmine 单元测试然后它在你的脚本中可用否则它不可用。
运行 来自控制台意味着你是 运行 javascript 来自脚本 host.So 主机无法找到 Window对象。
浏览器选项不包括全局对象的别名,window和self。
例如浏览器:['Chrome']
如果您想访问 window
对象,您应该确保在浏览器中测试 运行,而不是 node.js。
$ gulp test:unit
上述 boilerplate runs plain mocha 中的任务测试并且不会启动浏览器。要访问 window
和其他特定于浏览器的对象,您应该将测试放在 /tests/integration
目录中,并且 运行 它们像这样:
$ gulp test:integration
将代码单元与执行上下文松散耦合是一种很好的做法,这就是样板中的单元测试不启动浏览器的原因。他们不希望代码单元知道任何关于 window
或其他浏览器对象的信息。
当您的代码依赖于某些外部内容时,另一种解决问题的方法是为您的依赖项创建模拟。