为什么 Karma 拒绝提供我的 JSON 夹具(我想在我的 jasmine/angularjs 测试中使用它)

2023-02-15前端开发问题
3

本文介绍了为什么 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.

在我的 karma 配置文件中,我这样定义一个夹具:

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 测试中使用 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" }

知道这里发生了什么吗?我在网上看到很多通过业力装置成功地将 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 测试中使用它)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

ajax请求获取json数据并处理的实例代码
ajax请求获取json数据并处理的实例代码 $.ajax({ type: 'GET', url: 'https://localhost:44369/UserInfo/EditUserJson',//请求数据 data: json,//传递数据 //dataType:'json/text',//预计服务器返回的类型 timeout: 3000,//请求超时的时间 //回调函数传参 suc...
2024-11-22 前端开发问题
215

js删除数组中指定元素的5种方法
在JavaScript中,我们有多种方法可以删除数组中的指定元素。以下给出了5种常见的方法并提供了相应的代码示例: 1.使用splice()方法: let array = [0, 1, 2, 3, 4, 5];let index = array.indexOf(2);if (index -1) { array.splice(index, 1);}// array = [0,...
2024-11-22 前端开发问题
182

JavaScript小数运算出现多位的解决办法
在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会...
2024-10-18 前端开发问题
301

JavaScript(js)文件字符串中丢失"\"斜线的解决方法
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转...
2024-10-17 前端开发问题
437

layui中table列表 增加属性 edit="date",不生效怎么办?
如果你想在 layui 的 table 列表中增加 edit=date 属性但不生效,可能是以下问题导致的: 1. 缺少日期组件的初始化 如果想在表格中使用日期组件,需要在页面中引入 layui 的日期组件,并初始化: script type="text/javascript" src="/layui/layui.js"/scrip...
2024-06-11 前端开发问题
455

Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)...
2024-04-20 前端开发问题
5