问题标签 [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 投票
3 回答
4185 浏览

javascript - 如何在 Jasmine 中正确使用 mock-ajax 库

我有一个调用 JSON 的函数,然后在成功函数中对 DOM 进行一些更改。我试图在我的 Jasmine 测试中使用mock-ajax 库,以避免不得不公开各种私有函数进行模拟。

即使在单步执行测试时request.response设置了 onSuccess 方法,也不会被调用。

我的测试:

和我的代码:

没有调用任何延迟函数(成功、错误和始终)。

编辑

基于下面@gregg 的回答(他是对的,我没有在示例代码中包含 UseMock 调用),这感觉像是一个版本问题。即使包括了那个电话,这仍然对我不起作用。

在 github 上添加了一个可运行的示例

0 投票
0 回答
1101 浏览

http-headers - 使用 superagent 和 jasmine-ajax 进行测试时的标头 Content-Type 区分大小写问题

我在我的测试环境中使用superagentjasmine-ajax(带有 jasmine 适配器的业力)。

在尝试模拟 superagent 将处理的响应时,我注意到一个与响应标头区分大小写有关的问题。

测试代码:

在 superagent.js 行中 ~695 有:

在 mock-ajax.js 行 ~175 有

因此,显然在每个各自的库中,大小写存在差异,但是根据规范,我所做的所有研究都表明该字段不区分大小写。我认为这可能是 PhantomJS 的问题,但我也尝试过使用 Chrome,但存在同样的问题。

任何见解将不胜感激。

0 投票
2 回答
1302 浏览

javascript - Jasmine:带有可变 URL 的存根 ajax 请求

使用 Jasmine(使用jasmine-ajax),我需要存根一个 ajax 请求,其中 URL 具有动态生成的参数。例子:

但是,Jasmine 似乎不允许在 URL 中使用通配符。

问题:有什么方法可以使用 Jasmine 对变量 URL 的 ajax 请求存根?

0 投票
0 回答
761 浏览

jasmine - 如何测试和模拟返回数组缓冲区的 xmlhttprequest

我有一个角度应用程序,用户可以从他们的保管箱帐户中选择一个文件,然后应用程序下载该文件。这是代码。

我正在努力尝试编写一个涵盖 xmlhttprequest 部分的测试。这是我到目前为止所拥有的,但我收到了这个错误 -

我知道错误的含义,但我不确定我为什么会得到它。这是测试。

0 投票
0 回答
129 浏览

javascript - 如何在我的 karma jasmine 测试周期中使我的存根 ajax 调用生效?

我有一个主干应用程序,通过实例化一个视图,调用了整个 ajax 调用链。因此,如果我有 MainView.js 并实例化它new MainView(),MainView 会实例化 IASModel.js,它发出请求并向 MainView 返回一个承诺。然后,MainView 实例化 TestCastModel.js 并进行另一个 ajax 调用等......如果我要测试 MainView.js,我将不得不存根所有这些 ajax 调用(https://github.com/jasmine/jasmine-ajax)。然后随着我的测试进展,我将逐渐不得不以编程方式创建更少的这些 ajax 存根,因为我的应用程序正在进行中。

我如何只有一个文件在我所有测试的整个生命周期中都存在?我希望能够获取任何 ajax 请求,让那个文件处理它(路由到适当的路径)并返回该调用的存根。

0 投票
0 回答
144 浏览

javascript - 带有 Jasmine Ajax 的 PhantomJS 不会导致失败

我正在尝试测试我的 ajax 代码(链接)的故障功能。

我正在使用最新版本的 Karma、PhantomJS 和 Jasmine 以及所有必需的插件。

测试在 Chrome 中成功运行,但是当我使用 PhantomJS 时,我的 ajax 失败测试不会调用失败或成功函数。我为调试目的添加了一个成功,而不是在下面的代码中。由于所有其他 ajax 测试都按预期工作,因此还设置了正确的之前和之后,只是请求没有根据需要失败。

这是我的测试片段。

0 投票
0 回答
153 浏览

javascript - 使用 Jasmine 进行测试时,jQuery AJAX 调用返回包装在数组中的数据

我对 Jasmine 测试很陌生,所以也许我做错了什么。问题是我使用 jQuery 进行了简单的 AJAX 调用。方法很简单:

从我在 Jasmine 中的代码中,我像这样调用这个方法(使用 AJAX 模拟)

问题是我得到:

预期 Object({id: ['666'] }) 等于 Object({ id: 666 })

谁能回答为什么会这样?当我在调用之前在控制台中以及在方法中(但在调用 $.ajax 之前)记录传递的对象时,一切看起来都很好 - 不存在数组。唯一的问题是从返回的值

方法调用。有什么建议么?为什么我的 666 值包含在数组中?

0 投票
1 回答
75 浏览

jasmine - 茉莉模拟ajax调用的成功回调中没有位置标头

我正在使用 jasmine-ajax 模拟 ajax 请求,如下所示

我正在尝试获取传递给 ajax 成功回调的请求对象的“位置”标头,如下所示:

但它返回 null 并且 jasmine 测试失败,因为在 null 上调用了 substring 函数。我应该怎么办?注意:如果没有模拟 ajax 请求,我可以访问“位置”标头。

0 投票
1 回答
595 浏览

javascript - 是否可以使用 jasmine 模拟网络故障来模拟 ajax 请求?

我有一个需要检查用户是否连接到互联网的网络应用程序。在实现中,如果对已知端点的 ajax ping 成功,则 check() 函数承诺为 true,如果 ajax 调用以任何方式失败,则返回 false。

在 Jasmine 中,我可以用它request.respondWith({status:400, etc})来模拟失败,但我不知道如何模拟根本没有调用的更根本错误。

在实践中,浏览器似乎“返回”状态码 0 和 readyState 4,甚至无法进行调用。

我应该如何在我的 Jasmine 测试中解决这个问题?

0 投票
1 回答
453 浏览

javascript - 在 jasmine-ajax 模拟响应中设置响应标头?

如何respondWith使用 jasmine-ajax 设置响应标头?