【发布时间】:2014-08-22 14:24:55
【问题描述】:
运行 Jasmine 测试时出现错误:'ReferenceError: JSZip is not defined'。这是我的控制器:
$scope.makeZip = function() {
var zip = new JSZip();
zip.file('myPhoto.txt', 'Hello World);
return 'foo' + zip.generate();
};
并测试:
it('should make a zip with correct name', function() {
var zipFileName = scope.makeZip();
expect(zipFileName).toMatch('foo');
});
我的猜测是我需要以某种方式模拟 JSZip 构造函数:我尝试在测试开始时插入以下内容:
spyOn(window, 'JSZip').andReturn(null);
然后我得到“JSZip() 方法不存在”。 我认为这是与Jasmine - How to spy on a function call within a function? 类似的问题,但我找不到解决问题的正确方法。
有什么想法吗?感谢大家的帮助!
【问题讨论】:
-
你能展示一下'makePhotos()'的函数吗?我只看到“makeZip”
-
傻我,现在改名了
-
哈哈,发生了。那么,一切都按预期工作了吗?
-
不,不幸的是问题仍然存在......
标签: javascript angularjs unit-testing angularjs-scope jasmine