我对整个茉莉花的事情还不熟悉,过去几个小时我就陷入了这个问题。 我尝试使用loadFixture()加载外部fixture文件。 我使用Jasmine 2.0.0和Jasmine-jQuery 2.0.5。
ReferenceError: loadFixtures is not defined
at Suite.<anonymous> (--appname--/app/assets/Tester/spec/ChannelSpec.js:5:6)
at Env.describe (--appname--/app/assets/Tester/lib/jasmine-2.0.0/jasmine.js:613:25)
at jasmineInterface.describe (--appname--/app/assets/Tester/lib/jasmine-2.0.0/boot.js:37:18)
at Suite.<anonymous> (--appname--/app/assets/Tester/spec/ChannelSpec.js:2:3)
at Env.describe (--appname--/app/assets/Tester/lib/jasmine-2.0.0/jasmine.js:613:25)
at jasmineInterface.describe (--appname--/app/assets/Tester/lib/jasmine-2.0.0/boot.js:37:18)
at --appname--/app/assets/Tester/spec/ChannelSpec.js:1:1
在Chromium控制台中
Uncaught TypeError: Cannot set property 'spiedEventsKey' of undefined
这是ChannelSpec.js中的一行
1. describe('Channel', function() {
2. describe('Test Restriction', function() {
3. var $httpBackend,service;
4. // jasmine.getFixtures().proxyCallTo_('load', 'fixtures.html')
5. loadFixtures('fixtures.html');
我在Ubuntu 14.04上工作并且主要使用Chromium,但我尝试使用Firefox,因为有人建议使用它Same-Origin Policy,但它产生了类似的错误。
--- ---解决
最后加载jasmine-jquery解决了这个问题
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-jquery.js"></script>
答案 0 :(得分:4)
确保在加载Jasmine-jQuery库之前加载Jasmine。
答案 1 :(得分:2)
是的,如果您使用require.js,则应在填充程序配置中设置依赖项:
requirejs.s.contexts._.config.shim["jasmine-jquery"] = {
deps: ['jasmine', 'jquery'],
exports: 'jasmine-jquery'
}
例如,如果您在同一端口上开始测试并使用相同的require.js配置,就像在主应用程序中一样(“requirejs.s.contexts ._。config”是一种快速修补require config的方法茉莉花跑者
答案 2 :(得分:0)
我在使用bower安装软件包时遇到了这个问题,但是没有首先启动bower_components目录。
在这种情况下,请运行:
bower init
然后重新安装
bower install jasmine-jquery --save