为什么Karma拒绝提供我的JSON夹具(我想在我的jasmine / angularjs测试中使用) [英] Why is Karma refusing to serve my JSON fixture (which I'd like to use in my jasmine / angularjs tests)

查看:109
本文介绍了为什么Karma拒绝提供我的JSON夹具(我想在我的jasmine / angularjs测试中使用)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

stackoverflow答案所示,看起来Karma将为JSON设备提供服务。但是,我花了太多时间试图让它在我的环境中工作。原因:我正在进行角度测试,需要将模拟HTTP结果加载到测试中,因为Jasmine不支持使用模拟服务器和东西进行任何全局设置/拆卸。

As indicated in this stackoverflow answer, it looks like Karma will serve JSON fixtures. However, I've spent too many hours trying to get it to work in my environment. Reason: I'm doing angular testing and need to load mock HTTP results into the test, as Jasmine doesn't support any global setup/teardown with mock servers and stuff.

在我的业力配置文件中,我正在定义一个夹具:

In my karma config file, I'm defining a fixture as so:

files: [
  // angular 
  'angular/angular.min.js',
  'angular/angular-route.js',
  'angular/mock/angular-mocks.js',

  // jasmine jquery helper
 'jquery-1.10.2.min.js',
 'angular/jasmine-jquery.js',

  // our app
  '../public/js/FooApp.js',

  // our tests
  'angular/*-spec.js',

  // fixtures
  { pattern: 'node/mock/factoryResults.json',
    watched: 'true',
    served:  'true',
    included: 'false' }
]

在我尝试在我的茉莉花测试中使用jasmine-jquery.js之前加载JSON,我看到karma在试图服务时窒息:

Before I even attempt to use jasmine-jquery.js in my jasmine test to load the JSON, I see karma choking on trying to serve it:

...
DEBUG [web-server]: serving: /Users/XXX/FooApp/spec/node/mock/factoryResults.json
Firefox 25.0.0 (Mac OS X 10.8) ERROR
    SyntaxError: missing ; before statement
    at /Users/XXX/FooApp/spec/node/mock/factoryResults.json:1
...

这是factoryResults.json的样子:

Here's what factoryResults.json looks like:

{ "why": "WHY" }

知道这里发生了什么吗?我在网络上看到了大量的例子,通过karma fixtures成功地将JSON加载到jasmine测试中。业力可以看到文件;如果我在我的夹具块中放错了路径,我会看到一个错误,指出它找不到任何与我的夹具模式匹配的文件。我试过以不同的方式重新格式化.json文件......有什么想法吗?

Any idea what's going on here? I see plenty of examples on the web of folks successfully loading JSON into jasmine tests via karma fixtures. Karma can see the file; if I put the wrong path in my fixture block, I see an error stating that it couldn't find any files that match my fixture pattern. I've tried reformatting the .json file in different ways... Any ideas?

推荐答案

你的问题是'false'必须是布尔值,而不是字符串。

Your problem is that 'false' has to be a boolean, not a string.

已经一个问题,以更好地验证配置并修复这样的错误。

There is already an issue to validate the config better and fix such a mistakes.

另外,你可能会写一个简单的json预处理器(类似于 karma-html2js )使它成为有效的JS并将JSON放入某个全局命名空间,以便您可以使测试保持同步...

Also, you might write a simple "json" preprocessor (similar to karma-html2js) that would make it valid JS and put the JSON into some global namespace so that you can keep the tests synchronous...

这篇关于为什么Karma拒绝提供我的JSON夹具(我想在我的jasmine / angularjs测试中使用)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆