jasmine-jquery loadFixtures 与 Jasmine 2.0 不起作用

2024-03-07

我花了大约一天的时间调试这个,我不知所措。看起来 jasmine-jquery 2.0.2 中有些东西不起作用。

我正在从 Jasmine 1.3.1 和 jasmine-jquery 1.5 更新到最新版本。根据我尝试加载装置的方式,我遇到了各种失败。在调整 jasmine-jquery 以向 ajax.fail() 方法提供参数后,我得到“ Fixture无法加载:./ExposureWorksheetFixture.html(状态:解析器错误,消息:无效的XML”)。

当我调整示例 jasmine runner 并进行测试时,我得到的另一个效果是它说“零固定装置,零故障”。当我引用 jasmine-jquery、jquery 1.10.2 并尝试设置固定装置时,会发生这种情况。如果我删除该操作(但保留引用),则示例将起作用。

当我尝试加载固定装置时遇到的另一个错误是“(状态:错误,消息:访问受限 URI 被拒绝)”。当它实际尝试加载位于指定位置的文件时,似乎会发生这种情况。我看到另一个问题指出 jquery 需要真正的 Web 服务器来加载文件,并且它不喜欢本地文件路径,但我对这些库的旧版本没有这个问题。这种情况发生在 Firefox 中。我得到一个TypeError: Object doesn't support this property or method在 IE 8 中。在 Firefox 中,我得到Error: Fixture could not be loaded: spec/javascripts/fixtures/fixture.html (status: error, message: A network error occurred.).

这是一些示例代码...

在 PlayerSpec.js 中:

jasmine.getFixtures().fixturesPath = "./";
...
beforeEach(function() {
  player = new Player();
  song = new Song
loadFixtures("fixture.html");
});

在 SpecRunner.html 中,请注意对 jquery 和 jasmine-jquery 的额外引用:

<!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Jasmine Spec Runner v2.0.0</title>

  <link rel="shortcut icon" type="image/png" href="lib/jasmine-2.0.0/jasmine_favicon.png">
  <link rel="stylesheet" type="text/css" href="lib/jasmine-2.0.0/jasmine.css">

  <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/boot.js"></script>
  <script type="text/javascript" src="lib/jquery-1.10.2.js"></script>
  <script type="text/javascript" src="lib/jasmine-jquery.js"></script>

  <!-- include source files here... -->
  <script type="text/javascript" src="src/Player.js"></script>
  <script type="text/javascript" src="src/Song.js"></script>

  <!-- include spec files here... -->
  <script type="text/javascript" src="spec/SpecHelper.js"></script>
  <script type="text/javascript" src="spec/PlayerSpec.js"></script>

</head>

<body>
</body>
</html>

运行器上的输出(第一次测试 - 所有测试都失败)

Jasmine2.0.0finished in 0.019s

raise exceptions5 specs, 5 failuresSpec List | Failures
Player should be able to play a Song
Error: Fixture could not be loaded: spec/javascripts/fixtures/fixture.html (status: error, message: Access to restricted URI denied) in file:///D:/Temp/jas/lib/jasmine-jquery.js (line 132)
jasmine.Fixtures.prototype.loadFixtureIntoCache_/request<@file:///D:/Temp/jas/lib/jasmine-jquery.js:132 jQuery.Callbacks/fire@file:///D:/Temp/jas/lib/jquery-1.10.2.js:3048 jQuery.Callbacks/self.add@file:///D:/Temp/jas/lib/jquery-1.10.2.js:3094 jasmine.Fixtures.prototype.loadFixtureIntoCache_@file:///D:/Temp/jas/lib/jasmine-jquery.js:131 jasmine.Fixtures.prototype.getFixtureHtml_@file:///D:/Temp/jas/lib/jasmine-jquery.js:115 jasmine.Fixtures.prototype.read@file:///D:/Temp/jas/lib/jasmine-jquery.js:77 jasmine.Fixtures.prototype.load@file:///D:/Temp/jas/lib/jasmine-jquery.js:65 jasmine.Fixtures.prototype.proxyCallTo_@file:///D:/Temp/jas/lib/jasmine-jquery.js:161 window.loadFixtures@file:///D:/Temp/jas/lib/jasmine-jquery.js:763 @file:///D:/Temp/jas/spec/PlayerSpec.js:9 attemptSync@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1510 QueueRunner.prototype.run@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1498 QueueRunner.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1485 Env/queueRunnerFactory@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:518 Spec.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:309 Suite.prototype.execute/wrapChildAsAsync/<@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1708 attemptAsync@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1520 QueueRunner.prototype.run@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1496 QueueRunner.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1485 Env/queueRunnerFactory@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:518 Suite.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1696 Suite.prototype.execute/wrapChildAsAsync/<@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1708 attemptAsync@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1520 QueueRunner.prototype.run@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1496 QueueRunner.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1485 Env/queueRunnerFactory@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:518 Suite.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1696 @file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:541 attemptAsync@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1520 QueueRunner.prototype.run@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1496 QueueRunner.prototype.execute@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:1485 Env/queueRunnerFactory@file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:518 @file:///D:/Temp/jas/lib/jasmine-2.0.0/jasmine.js:548 window.onload@file:///D:/Temp/jas/lib/jasmine-2.0.0/boot.js:170 

编辑 2/13/14 @ 8:32pm est:我只是尝试只更新 jasmine-jquery,当我这样做时,一切都失败了(Jasmine 1.31)。我想这个库一定出了什么问题:(


我要感谢 travisjeffery 的回答。虽然这并不能解决我的问题,但它让我重新尝试不同的事情。我发布的具体示例的答案是,我将夹具放在带有规范的文件夹中,该文件夹不是带有跑步者的文件夹,并且路径是相对于跑步者定义的。然而,我的实际设置问题仍然存在。自从我终于得到了一个工作样本后,我开始努力找出我做错了什么。

主要问题是我的 HTML Fixture 虽然在 jasmine-jquery 1.5 中有效,但在 2.0.2 版本中不再有效。我以为我之前通过一次删除一个片段就涵盖了所有语法可能性,但是当我这样做时again,我发现删除脚本部分可以加载夹具。我把它放回去了,但是insidehtml 元素,而不是其后。我认为这相当于 XML 文档中的两个根元素,因此BAM!解析错误。

另一个问题是我必须将 jasmine-jquery 脚本放入运行程序中after我加载 boot.js 文件,否则我会得到“0 固定装置 0 失败”。之后,我必须更新 Jasmine 语法,现在我又拥有了一组工作测试。我希望这对其他人有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jasmine-jquery loadFixtures 与 Jasmine 2.0 不起作用 的相关文章

  • KarmaJS、Jasmine、RequireJS 等:如何使用 Require 测试模块

    使用 RequireJS 运行 Karma Jasmine 测试 起步 帮助 求救 目前 我有一个练习项目 旨在熟悉 KarmaJS 以及整个单元测试 广泛的问题是 我对 Karma 在幕后所做的事情确实没有透明的了解 而且我似乎无法在相关
  • 测试组件,这取决于路由参数

    我有一个关于在 angular2 中测试路由组件的问题 这是一个简单的组件 它依赖于带有参数的路由 foo 属性foo组件中的值将被设置为参数的值 import Component OnInit from angular core impo
  • AngularJS Protractor - 使用 Ng-Click 绑定查找页面上的元素

    我的页面上有一个按钮 如下所示
  • 如何避免 jasmine 在不同环境下出现较长的相对路径(../../../)?

    我目前正在开发一个项目 我想在不同的环境中进行测试 包括 node js 和带有 karma selenium 的不同浏览器 以避免兼容性问题 我想我会在浏览器中使用browserify 但我还不熟悉它 我有一个嵌套的测试目录 如下所示 r
  • grunt jasmine-node 测试运行两次

    我设置 grunt 来运行 node js 茉莉花测试 由于某种原因 使用此配置 结果总是显示双倍的测试 这是我的配置 我在用着茉莉花节点 https github com jasmine contrib grunt jasmine nod
  • Angular 2 测试 - 获取 DOM 元素样式

    我想在 Angular 2 应用程序中测试隐藏显示按钮的功能 测试是用 Jasmine 编写的 所以我需要检查display相关元素的属性 我怎样才能使用 Angular 获得这个属性debugElement 测试代码 let input
  • 使用 Jest 和 Testbed 测试 Angular 9 服务

    在我的 Angular 9 项目中我添加了jest并删除Jasmine and Karma 我正在测试一项名为CorrectionService依赖于一个名为的服务RemoteService 我想监视RemoteService查看是否调用了
  • 在运行量角器测试时进行 API 调用

    我已经使用构建了一个网络应用程序angular2 0 and typescript 现在我正在写E2E为我的网站使用protractor 现在 在我的一项测试中 我需要进行 API 调用 HTTP GET 请求 并使用响应值作为测试用例中的
  • Jasmine-jQuery loadFixtures 未定义

    我对整个茉莉花的事情仍然很陌生 在过去的几个小时里我陷入了这个问题 我尝试使用 loadFixture 加载外部夹具文件 我使用 Jasmine 2 0 0 和 Jasmine jQuery 2 0 5 ReferenceError loa
  • $compile 不编译 Karma/Jasmine 中的模板

    我已经用 PhantomJS 和 Chrome 对此进行了测试 下列的这个问题 https stackoverflow com questions 27026596 accessing compiled template in unit t
  • Jasmine:期望在异步函数中抛出错误

    我的 angular2 应用程序中有一个异步函数 我想为其编写单元测试 想象一下我的功能是这样的 myFunc a int Promise
  • Angular 中的单元测试点击事件

    我正在尝试将单元测试添加到我的 Angular 2 应用程序中 在我的一个组件中 有一个带有 click 处理程序 当用户单击按钮时 将调用在中定义的函数 ts类文件 该函数在 console log 窗口中打印一条消息 表明该按钮已被按下
  • 当我尝试使用 jasmine 进行测试时,应用程序文件夹未在 Ext.appliation 中加载

    我正在尝试在我的应用程序 Ext js 5 中实现茉莉花以进行单元测试 为此 我创建了应用程序测试文件 Ext require Ext app Application Ext Loader setConfig enabled true Ex
  • 在 Jasmine 测试中配置 Angular 服务提供者

    我的服务有someModule module someModule provider someService function this options this get function return options 我正在编写规范 到目
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • 使用 Jasmine 测试 Angular 异步服务

    我正在尝试使用 Jasmine 测试真正的 http 调用 集成测试 但是当我调用使用 http get 的方法时 它会超时并且服务器永远不会被调用 我知道我应该注入 http 的实现 但不确定应该在哪里发生 搜索服务 app servic
  • Angular 单元测试是否根据服务中的数据调用组件方法

    我不知道如何测试组件方法是否在服务数据条件下被触发 服务看起来像 Injectable export class SomeService someData return true comp export class SomeComponen
  • 单元测试依赖注入

    我对茉莉花和业力是全新的 我相信我的环境设置正确 并且我能够运行非常基本的单元测试 但是一旦我尝试实例化控制器 我就会收到未知提供程序错误 并且我不确定如何调试它 我需要传入 stateProvider 依赖项吗 我在角种子示例中没有看到这
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 指令中的 Angular + 茉莉花 + 模拟 $stateParams

    在指令中模拟 stateParams 的最佳方法是什么 stateParam成员会根据测试而改变 我可以使用 controller ctrl stateParams 轻松模拟控制器中的 stateParams 但不知道如何修改注入指令的 s

随机推荐

  • 使用“IN”命令将数组作为参数传递给 SQL 查询

    大家下午好 我有一个关于 SQL 查询的问题 是否可以使用数组作为使用 IN 命令的查询的参数 例如 int x 2 3 4 5 UPDATE table name set field 数据 WHERE field ID IN x 我问这个
  • Auth.net 捕获问题

    我在 auth net 上捕获交易的函数是 public function capture Varien Object payment amount if this gt isEnabled return parent capture pa
  • 带地址的 R 地理编码

    我有 32K 行地址 我必须为其查找长 纬度值 我正在使用找到的代码here http www storybench org geocode csv addresses r 我非常感谢这个人创造了它 但我有一个问题 我想对其进行编辑 以便如
  • pthread_create 的钩子

    是否有 在 glibc 2 5 及更新版本中 为 pthread create 定义钩子的方法 有很多二进制应用程序 我想编写一个动态库通过 LD PRELOAD 加载 我可以在 main 属性构造函数 的入口处添加钩子 但是如何强制我的代
  • 如何在Stream上短路reduce?

    假设我有一个布尔值流 并且我正在编写的归约操作是 或者 我能否以一种方式编写它 以便在以下情况下放弃至少某些元素的评估 true遇到的值是 我正在寻找一定程度的优化 也许如果它是并行流 不一定是完全优化 尽管后者会很棒 我怀疑你想要这种类型
  • 如何使新的 html 5 datalist 输入立即打开?

    问题很难理解 英语不是我的母语 我会尽力而为 所以新的html标签
  • 在 SDL Tridion 2011 发布期间提出“警告”状态

    我们希望实现一些功能 以便当由于某种原因在发布或解决过程中发生错误时 我们可以使用 try catch 块跳过它 但仍然希望通知用户某些内容被跳过 SDL Tridion 2011 发布队列可以按状态进行过滤 这些状态之一是 警告 是否可以
  • npmauditfix --force 改变了什么以及如何修复它?

    我试图npm install apn save并使用npm audit fix force 希望你知道自己在做什么 的信息让我意识到我不知道自己在做什么 之后我原本得到 node home ec2 user myapp bin www sy
  • P4 - 为客户更改工作空间

    我想使用 p4 命令行更改工作区客户端 但我不知道是否可能 您可以使用 p4workspace 命令创建 删除或编辑工作区 但我想使用 bat 方法更改当前工作区 示例 p4 c MyClient 更改工作空间 myNewWorkspace
  • Ubuntu 14.04:升级到 php7 并卸载 php5?

    我正在将基于 Ubuntu 14 04 的 docker 映像中的 php 版本升级到 7 0 我读了一些文章 给出了在安装 php7 0 时卸载 php5 的命令 这真的有必要吗 优缺点都有什么 添加 PHP 7 的新存储库 apt ge
  • 在 Django 中,如何在组添加或删除用户时获取信号?

    在 Django 管理中 我有时会向 现有 组添加或删除用户 当发生这种情况时 我希望能够运行一个函数 我只是使用标准的用户和组模型 我已经考虑过通过 m2m changed 使用信号来完成此操作 但似乎需要一个 Through 类 我认为
  • gdfs 到图表,反之亦然

    当我使用python的时候会发生以下情况osmnx如下 graph osmnx graph from polygon Data bbox gdf nodes gdf edges osmnx save load graph to gdfs g
  • lua:关于本地范围的模块导入

    有两个脚本文件 脚本如下 parent lua function scope local var abc require child end child lua print var 这样 child lua 将打印 nil 值 因为 Par
  • Android:将位图从本地存储加载到应用程序小部件(RemoteViews)

    到目前为止 我一直在将位图加载到我的RemoteViews直接使用remoteViews setImageViewBitmap 总体来说运行良好 但有几个用户遇到了问题 我认为是在加载非常大的位图时出现的 无论如何 我已经将位图缓存到本地存
  • 从 hdfs 读取 ocr 文件后令人难以置信地触发数据帧

    我在 Ambari 上使用 Spark 2 1 1 和 hadoop 2 6 时遇到问题 我首先在本地计算机上测试了我的代码 单节点 本地文件 一切都按预期工作 from pyspark sql import SparkSession sp
  • 如何禁用 VS-Code GCC 编译器的警告? (不使用#pragma)

    我正在使用 C C intellisense gcc arm 开发 VS Code 当我编译时 VS Code 向我显示了数百个这样的警告 Conversion from int to u16 t aka short unsigned in
  • 如何在 Spree 2.x / Rails 4 中覆盖 Product_url 以使 SEO 更友好?

    我希望我的产品网址如下所示 product name here p 代替 product product name here 我怎样才能实现这个目标 经过大量研究后我明白了 此过程有两个步骤 首先是创建与新产品路线相匹配的路线 因此 进入你
  • 如何在控制台应用程序中引用 Windows 8 运行时(特别是 BLE API)?

    我在 Windows 8 1 上的 Visual Studio Professional 13 中使用 C WDK http msdn microsoft com en us library windows hardware ff54708
  • Python 3.5 async/await 与真实代码示例

    我读过大量关于 Python 3 5 async await 的文章和教程 我不得不说我很困惑 因为有些使用 get event loop 和 run until complete 有些使用 Ensure future 有些使用 async
  • jasmine-jquery loadFixtures 与 Jasmine 2.0 不起作用

    我花了大约一天的时间调试这个 我不知所措 看起来 jasmine jquery 2 0 2 中有些东西不起作用 我正在从 Jasmine 1 3 1 和 jasmine jquery 1 5 更新到最新版本 根据我尝试加载装置的方式 我遇到