没有定义Jasmine-jQuery loadFixtures

时间:2014-07-02 12:56:18

标签: javascript angularjs jasmine jasmine-jquery

我对整个茉莉花的事情还不熟悉,过去几个小时我就陷入了这个问题。 我尝试使用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>

3 个答案:

答案 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