问题标签 [pretender.js]

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 投票
0 回答
427 浏览

javascript - 使用伪装者.js 传递真实请求

我试图在我的项目的验收测试中通过一个真正的 web 服务。Pretender 拦截所有 xhr 请求,所以我试图告诉它通过 example.com

根据文档,我应该能够做到这一点。

或这个

但我在我的控制台中得到了这个。

Uncaught TypeError: Pretender 拦截了 GET https://www.example.com/foo/bar但遇到错误:handler.handler is not a function(...)

因为

handler.handler 是 server.passthrough 和 server.passthrough 是一个对象?

测试单独通过,但当我使用 npm test 在控制台上运行完整套件时失败。它也在浏览器中传递。我想我要么有比赛条件。

0 投票
0 回答
1135 浏览

ember.js - 伪装者拦截了 GET ...但没有为这种类型的外部请求定义处理程序

我在 Ember 应用程序中使用 Stripe。Stripe 向该地址发出请求:https ://checkout.stripe.com/api/outer/manhattan?key= ... 在我的验收测试中,我收到了这条消息:Pretender intercepted GET https://checkout.stripe.com /api/outer/manhattan?key= ...但没有为这种类型的请求定义处理程序。

我试图像这样存根这个请求:

但它不起作用。我也尝试使用完整的 url 或通配符但没有成功。

有解决办法吗?

0 投票
1 回答
1473 浏览

ember.js - 如何将“ember-cli-mirage”请求传递给特定的 API 和主机

我正在尝试使用passthrough的功能ember-cli-mirage允许我的应用程序请求不同的 API 和主机。

我想将请求指向当前 ember 服务器正在运行的环境之外。但是通过固定 URL 的请求就像/api/authenticate.

它抛出异常如下。

我想将请求配置为如下所示

ember-cli-mirage/伪装者中是否有任何可用选项?请帮忙。

0 投票
1 回答
323 浏览

ember.js - ember-cli-mirage 错误:处理程序未返回任何内容,但处理程序存在

在我正在使用的应用程序中,我们有一个GET验证用户电子邮件地址的路由。如果电子邮件无效,服务器会回复:

  • 状态200
  • 响应标头与Content-Type:application/json; charset=utf-8
  • 并且响应数据本身只是一串“此电子邮件无效”

我试图ember-cli-mirage通过这样做来模拟这一点:

测试本身是触发此请求的按钮单击:

...我得到的错误是:

伪装者拦截了 GET /ember_api/v1/validations/validate_email?email=tom%40gmail.com&skip_uniq=true 但遇到错误:/ember_api/v1/validations/validate_email?email=tom%40gmail.com&skip_uniq=true 的处理程序未返回任何内容。记得返回[status, headers, body];在您的路线处理程序中。`

它要求我return [status, headers, body]这样做,但我在我的处理程序中这样做,它仍然会引发错误。

这实际上是响应的问题吗?我是否需要编辑我的 API 以实际返回 JSON API 格式的对象,以便我可以这样编写测试?

我觉得我应该能够在我的测试中返回一个字符串,因为这就是应用程序正在做的事情。任何帮助表示赞赏。

0 投票
1 回答
602 浏览

javascript - 是否可以在浏览器中拦截非 ajax 请求?

是否可以使用不是通过XMLHttpRequest对象(ajax)完成的 JavaScript 拦截浏览器中的 HTTP 请求?

我正在使用ember-cli-mirage 模拟API 服务器,它正在使用fakeer。我需要将文件上传(图像)添加到应用程序。模拟上传没有问题,因为它是由 ajax 完成的。但我无法拦截由图像标签(非 ajax 请求)引起的 GET 请求,因为伪装者只拦截通过的请求XMLHttpRequest,因此无法返回“上传”的数据。

无论如何我也可以拦截非ajax请求吗?

如果不是:那么应该将什么视为最佳实践?这是我到目前为止所考虑的:

  1. 通过 ajax 检索图像,以便我可以轻松拦截请求。例如,我可以将它们视为具有 base64 编码图像数据作为属性的 ember 数据模型。但我不确定权衡。恐怕这会导致性能问题以及可能导致图像大小(> 1MB)的内存泄漏。
  2. 传递图像请求并在 ember-cli 附带的快速服务器中处理它们。但是只有当应用程序由 ember-cli 提供时,模拟文件上传才会起作用。并且无法部署开发版本将是一个很大的权衡。
0 投票
2 回答
369 浏览

ember.js - 遗留应用程序中的 ember-cli-mirage

我们有使用Pretender为测试提供固定装置的应用程序。现在我们正在尝试迁移到ember-cli-mirage。我们不能一次迁移所有的灯具。所以基本上发生的事情是我们正在启动我们自己的 Pretender 服务器,而 ember-cli-mirage 正在启动它自己的服务器。哪个呈现以下警告:

您创建了第二个 Pretender 实例,而已经有一个正在运行。同时运行两个 Pretender 服务器会导致意想不到的结果,并将在未来的主要版本中完全删除。当您不再需要它们响应时,请在您的实例上调用 .shutdown()。

由于这只是一个警告,因此在过渡期间应该不是问题。问题是一旦 Mirage 被加载到我们的应用程序中,旧的 Pretender 路由就会停止响应。我想这就是“......将导致意想不到的结果”所指的。

有机会在手动创建的 Pretender 路线旁边运行 ember-cli-mirage 吗?或者只是使用 Mirage 服务器并在那里注入这些路由?

0 投票
0 回答
122 浏览

ember.js - Qunit 序列化程序测试返回“无法读取属性‘push’ of null”

下面的 Ember 序列化程序测试因“无法读取属性‘push’ of null”而失败。

我正在使用 Pretender 模拟服务器库。当我调用 store.findRecord() 时测试失败

请注意分配模型/序列化器中没有关系,这就是为什么它抛出以下错误令人困惑:

单击此处查看返回的错误

赋值序列化器:

分配模型:

序列化程序测试(失败):

0 投票
0 回答
21 浏览

php - 处理来自伪装者的 POST 请求

我正在使用一个库,它使用伪装库将数据发送到端点,现在我一点也不知道如何在我的端点接收这些数据。

我没有使用 react,我只是使用普通的 javascript / ajax,我在网上看到的所有示例似乎都使用 react 或某种 JavaScript 库。

我不断收到此错误

/test 只是一个 .php 文件,但我尝试处理 GET 和 POST 变量,但此错误不断出现,它实际上从未将数据发送到端点。

我认为发送的数据是 json 格式,如果有帮助的话,不是想被勺子喂食,只是想指出正确的方向,我不是最好的,但我仍在学习并希望了解更多.

任何帮助,将不胜感激。

谢谢你。