问题标签 [ember-cli-mirage]

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

javascript - 在 Ember 中使用 Mirage 进行测试 - 删除没有依赖项的项目

在我的 Ember 应用程序中,您可以添加、编辑和删除事件和待办事项,并将待办事项与事件联系起来。后端是一个 Rails 应用程序。对于测试,我使用 Mirage。Mirage 中的模型具有以下关系:

在我的验收测试中,我创建了一个用户,其中包含一个事件以及一些与事件和用户相关的待办事项。我访问事件页面并单击创建的事件。您也可以选择与事件相关的所有待办事项来删除它们。但在这种情况下,我只想删除没有连接 todos 的事件。然后我通过确认开始删除请求。

config.js 中的删除路由:

在生产代码中一切正常。但是在测试中,创建的事件有零个待办事项作为关系,并且在确认它删除事件和恰好一个待办事项后。 错误信息

0 投票
1 回答
1132 浏览

ember.js - 相对图片源 ember js

我在 emberjs(ember-cli)中的资产路径有问题。

我有2条路线:indexarticle路线,索引路线的路径只是a /,文章路线的路径是article/:article_id

路由器.js

idnex模板中,我public/assets/使用以下内容引用目录中的资产:<img src="/assets/images/image1.jpg/>它的工作很好,但是当我在article模板中使用相同的标签时,图像没有加载,原因是客户端(浏览器)发送使用以下 url 对服务器的请求localhost:4200/article/assets/images/image1.jpg

0 投票
2 回答
136 浏览

ember.js - 访问模板上的元数据属性

我有一个带有 ember-cli-mirage 和一些元数据的模拟 api 端点。我确实覆盖了模型序列化程序以添加这样的元数据:

api 调用正确返回该元数据:

鉴于我有这个路由处理程序:

当我尝试在我的模板上打印该数据时

然后什么都没有渲染。我错过了什么吗?

0 投票
1 回答
327 浏览

ember.js - mirage ember 属性未定义

我想使用 mirage 和 ember 来模拟我的 api 后端。我遵循了快速入门,可以通过调用商店获得 10 个条目:

我使用 createList 来设置它,但是当我查看它们时,只有 id 和 type 是正确的。我可以在 ember chrome add on 中看到属性名称,但一切都未定义。

知道我做错了什么吗?

我认为这可能与序列化程序有关:

我相信属性通常在数据属性中,并且由 ember 数据处理,所以它不应该需要任何进一步的更改,对吧?

0 投票
0 回答
242 浏览

angularjs - 如何在 Ember 中使用 angular-filemanager 插件

我安装angular-filemanagerbower install angular-filemanager --save导入了必要的依赖项ember-cli-build.js

然后我创建了一个组件,但我不确定如何使用该angular-filemanager指令。

组件.js:

模板.hbs:

我对 Angular 了解不多,几个月前我才开始学习 ember。为此,我所能做的就是运行该函数指令。

- -编辑 - -

由于我使用的是 mirage,所以我只是创建了带有路径的方法,它对请求和请求admin/file都没有任何意义。getpost

我将 component.js 更改didInsertElement

和 template.hbs 到

我仍然看不到屏幕上显示任何内容,但控制台上出现错误:

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 投票
1 回答
98 浏览

javascript - Ember Mirage:记录创建中的伪造输出重用

我希望模拟一个相当糟糕的 API,它具有重复数据的字段,所以我试图创建一个 Mirage Factory 来生成一些随机数据

例如

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 回答
133 浏览

ember.js - Ember 教程 - 安装 ember-cli-mirage 后服务器未启动

跟随 ember 教程并开始在此处安装 ember-cli-mirage 。安装插件后,服务器将无法启动。我进入“在http://localhost:4200/上服务”,然后它就挂在那里了。当我尝试通过 Ctrl-C 杀死服务器时,它也会挂在“清理...”处。如果我从 package.json 和 node_modules 中删除 ember-cli-mirage,那么一切都会重新开始。

我已经能够四处挖掘以使实时服务器和其他方面运行,但是这个没有给我任何工作。教程是否缺少任何其他设置/部分,或者我是否有版本/环境问题?有没有办法在启动时获取更多信息(我知道 --verbose 不是一个)?

流浪者:ubuntu/trusty-64 (14.04.5 LTS)

节点:v7.5.0

NPM:v3.10.8

余烬-cli:2.11.1

经过更多的挖掘,这似乎与流浪者有关。我在我的本地 Windows 机器上运行了相同的步骤,它可以很好地加载 Node v6.10.0。然后,我在 Vagrant 上尝试了该版本的 Node,并在我外出时让它运行。容器最终花了 19 分钟才上来。全部时间都在巴别塔度过。这似乎不是 VM 上的内存问题,不确定可能有什么区别,也没有报告错误。

两个环境的 Ember 服务器输出:

流浪汉

vagrant@vagrant-ubuntu-trusty-64:/vagrant/sample$ ember serve Livereload server on http://localhost:4300 Serving on http://localhost:4200/

Build successful - 1169101ms.

Slowest Nodes (totalTime => 5% ) | Total (avg) ----------------------------------------------+--------------------- Babel (19) | 1106280ms (58225 ms)

视窗

c:\projects\super-rentals>ember server Livereload server on http://localhost:49153 Serving on http://localhost:4200/

Build successful - 24208ms.

Slowest Nodes (totalTime => 5% ) | Total (avg) ----------------------------------------------+--------------------- Babel (19) | 12332ms (649 ms) SimpleReplace (2) | 4686ms (2343 ms) Concat (8) | 3411ms (426 ms) Funnel: Addon JS (11) | 1289ms (117 ms)