我怎样才能用茉莉花中的窗户
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
没有定义。
我正在使用这个使用PhantomJS的样板进行这个测试。
如果您想访问window
对象,您应该确保您的测试在浏览器中运行,而不是在node.js中运行。
$ gulp test:unit
上面提到的样板中的任务运行普通的mocha测试,并且不启动浏览器。要访问window
和其他特定于浏览器的对象,您应该将测试放在/tests/integration
目录中,并像这样运行它们:
$ gulp test:integration
让代码单元与执行上下文松散耦合是一种很好的做法,这就是为什么样板中的单元测试不会启动浏览器的原因。他们不希望代码单元知道任何关于window
或其他浏览器对象的信息。
当您的代码依赖于某些外部内容时,解决此问题的另一种方法是为依赖项创建mock。
Well窗口对象表示浏览器窗口。如果您从浏览器运行jasmine单元测试,那么它在您的脚本中是可用的,否则它是不可浏览的。
从控制台运行意味着您在脚本主机上运行javascript。因此主机无法找到Window对象。
浏览器选项不包括全局对象、窗口和自身的别名。
例如浏览器:['Chrome']
相关文章:
- 迷你$provider注入茉莉花和角
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- 茉莉花节点测试;t正在运行
- Meteor集成测试,在velocity'她的镜子上有茉莉花
- 奇怪的窗户,打开的行为
- 如何把我的盒子总是放在窗户中央
- 我可以把茉莉花规格报告器的输出写入文件吗
- 茉莉花 - 未调用方法
- 防止模型从窗户掉出去
- 在测试间谍的上下文中,存根和mock之间有什么区别?(茉莉花)
- 使用茉莉花测试木偶视图和车把模板
- 使用茉莉花测试主干关系模型
- JQuery/骨干删除在茉莉花中不起作用
- 茉莉花和元素的位置
- 量角器 iOS 自动化:茉莉花规范超时.重置 Web 驱动程序控制流
- 茉莉花Maven插件包括我的脚本使用文件协议
- 运行茉莉花测试用例
- 茉莉花钟的工作原理
- 茉莉花节点没有输出
- 我怎样才能用茉莉花中的窗户