问题标签 [jasmine-ajax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
240 浏览

javascript - jasmine-ajax 模拟获取参数

我正在使用 jasmine-ajax 来模拟​​ $.ajax 接听电话。在我的实际代码中,我通过数据选项发送了一些参数。

但在我的测试中jasmine.Ajax.requests.mostRecent().url返回/users?id=1jasmine.Ajax.requests.mostRecent().data()返回{}。有没有办法让 url 返回/users和数据返回{id:"1"},让我的测试生活更轻松?

0 投票
1 回答
283 浏览

javascript - 无法阻止 jasmine-ajax 尝试解析 FormData 对象

我正在使用 AJAX 进行 POST 并尝试测试发送的数据,但是当测试运行时我收到错误“paramString.split 不是函数”。我已经寻找过有关此的其他帖子,但它们似乎都是关于让 FormData 与 AJAX 一起使用,我没有遇到任何问题。数据发送,但我无法围绕它编写成功的测试。

阿贾克斯:

测试:

错误

错误发生在这一行: https ://github.com/jasmine/jasmine-ajax/blob/master/src/paramParser.js#L18 。我在那里放了一个断点,paramString此时实际上是一个 FormData 对象。我假设模拟请求jasmine.Ajax.install会覆盖processData: false我在原始请求中的内容,但我不知道如何解决这个问题。

0 投票
3 回答
7397 浏览

jquery - 用 Jasmine 模拟 jQuery ajax 调用

我正在使用 Jasmine 2.5.2 为使用 jQuery 3.1.1 执行 Ajax 请求的代码编写单元测试。我想模拟 Ajax 调用,提供我自己的响应状态和文本。

我正在使用 Jasmine ajax 插件(https://github.com/pivotal/jasmine-ajax)。

按照https://jasmine.github.io/2.0/ajax.html上的示例,它使用 XMLHttpRequest 对象,工作正常。

注意:这与记录的示例略有不同,必须更改jasmine.Ajax.requests.mostRecent().response()jasmine.Ajax.requests.mostRecent().respondWith().

当我使用 jQuery Ajax 时,从不调用 doneFn。

茉莉花说

Jasmine-Ajax 在 XMLHttpRequest 对象上模拟您的请求,因此应该与执行 ajax 请求的其他库兼容。

$.ajax 从 1.4.x 返回 jqXHR 而不是 XMLHttpRequest - 这会破坏 Jasmine Ajax 的支持吗?

0 投票
0 回答
42 浏览

javascript - 使用 Jasmine 和 AJAX 加载数据似乎没有将其保存到 javascript 类

我正在使用 Jasmine 2.8 和 jasmine-ajax 插件来模拟 jQuery getJSON 调用。回调应该将数据存储回对象中。我有一个类结构如下。

Jasmine 返回错误消息: Expected({ }) to equal 。

将打印语句放入代码中会验证回调是否已被调用和接收,但是当测试运行时,数据属性 (_d) 是一个空对象。

我在 nodejs 的命令行上使用 jasmine。我有一个助手,它使用 JSDOM 加载虚拟 dom 并配置 global.getJasmineRequireObj 来配置 jaxmine-ajax;

谢谢你。

0 投票
0 回答
174 浏览

jquery - jQuery ajax 成功函数可以将“未定义”作为数据保存吗?

在向现有 javascript 代码添加单元测试覆盖率的过程中,我们遇到了一个我们似乎无法很好地覆盖的情况,即检查回调数据是否未定义的代码:

可能的答案之一是我们无法测试这一行,因为datajQuery.ajax 传递给成功函数不能未定义。是这样吗?

参考资料提到了传递的数据类型data任何东西,但我不确定这是否意味着data可能是未定义的,以及我们是否可以测试分支。

成功

0 投票
1 回答
1206 浏览

jasmine - “typeof jasmine”类型不存在属性“Ajax”

我正在尝试在 angular-cli 项目中安装 jasmine 插件“jasmine-ajax”。这些说明看起来很标准,但我一直收到这个错误:

“src/app/app.component.spec.ts(8,13) 中的错误:错误 TS2339:类型 'typeof jasmine' 上不存在属性 'Ajax'。”

我一直在 jasmine.Ajax.install() 上看到错误

在我的 karma.conf.js 文件中,我有这个:

我还尝试使用 jasmine.json 中的 helpers 部分添加插件。这是我的 jasmine.json 文件的样子:

最近有人成功安装了 jasmine-ajax 插件吗?

会不会是 jasmine-ajax 的版本?

0 投票
1 回答
728 浏览

typescript - 使用 jasmine-ajax 模拟 XMLHttpRequest 给出 jasmine.ajax = undefined

我正在尝试使用 jasmine-ajax 在单元测试中模拟 XMLHttpRequest。我使用 Aurelia CLI 来生成我的应用程序,并且我使用 Karma 作为单元测试运行器。

对于单元测试,我尝试导入 jasmine-ajax:

使用 Karma 运行测试时,我得到:

TypeError: jasmine_ajax__WEBPACK_IMPORTED_MODULE_0__.jasmine 在 test/karma-bundle.js 第 3146 行 > eval(第 7 行)中未定义

我发现我已经安装了 jasmine-ajax 的类型定义

npm i @types/jasmine-ajax

然后我删除了 jasmine-ajax 的导入语句。这导致了以下错误:

TypeError: jasmine.Ajax is undefined in test/karma-bundle.js line 3134 > eval (line 3)

那我做错了什么?

我正在使用 jasmine 3.3.9、jasmine-ajax 3.4.0、karma 4.0.1、typescript 2.9.2 和 webpack 4.4.25,

0 投票
1 回答
82 浏览

javascript - 如何使用 jasmine-ajax 来验证 send 方法是否被调用?

如果我从不调用该方法,应该使用 4jasmine-ajax调用吗 onreadystatechangereadyStatesend

如果以上不是预期的行为,我如何使用jasmine-ajax来验证该send方法是否被调用?

这是正在测试的代码:

这是测试:

我很惊讶地看到它successFunction被调用了,因为被测代码从不调用ajax.send(). 如果这是库的预期行为,那么我如何spyOn使用底层ajax对象以便验证被测代码是否调用send