问题标签 [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.
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 格式的对象,以便我可以这样编写测试?
我觉得我应该能够在我的测试中返回一个字符串,因为这就是应用程序正在做的事情。任何帮助表示赞赏。
javascript - 在 Ember 中使用 Mirage 进行测试 - 删除没有依赖项的项目
在我的 Ember 应用程序中,您可以添加、编辑和删除事件和待办事项,并将待办事项与事件联系起来。后端是一个 Rails 应用程序。对于测试,我使用 Mirage。Mirage 中的模型具有以下关系:
在我的验收测试中,我创建了一个用户,其中包含一个事件以及一些与事件和用户相关的待办事项。我访问事件页面并单击创建的事件。您也可以选择与事件相关的所有待办事项来删除它们。但在这种情况下,我只想删除没有连接 todos 的事件。然后我通过确认开始删除请求。
config.js 中的删除路由:
在生产代码中一切正常。但是在测试中,创建的事件有零个待办事项作为关系,并且在确认它删除事件和恰好一个待办事项后。 错误信息
ember.js - 相对图片源 ember js
我在 emberjs(ember-cli)中的资产路径有问题。
我有2条路线:index
和article
路线,索引路线的路径只是a /
,文章路线的路径是article/:article_id
路由器.js
在idnex
模板中,我public/assets/
使用以下内容引用目录中的资产:<img src="/assets/images/image1.jpg/>
它的工作很好,但是当我在article
模板中使用相同的标签时,图像没有加载,原因是客户端(浏览器)发送使用以下 url 对服务器的请求localhost:4200/article/assets/images/image1.jpg
。
ember.js - 访问模板上的元数据属性
我有一个带有 ember-cli-mirage 和一些元数据的模拟 api 端点。我确实覆盖了模型序列化程序以添加这样的元数据:
api 调用正确返回该元数据:
鉴于我有这个路由处理程序:
当我尝试在我的模板上打印该数据时
然后什么都没有渲染。我错过了什么吗?
ember.js - mirage ember 属性未定义
我想使用 mirage 和 ember 来模拟我的 api 后端。我遵循了快速入门,可以通过调用商店获得 10 个条目:
我使用 createList 来设置它,但是当我查看它们时,只有 id 和 type 是正确的。我可以在 ember chrome add on 中看到属性名称,但一切都未定义。
知道我做错了什么吗?
我认为这可能与序列化程序有关:
我相信属性通常在数据属性中,并且由 ember 数据处理,所以它不应该需要任何进一步的更改,对吧?
angularjs - 如何在 Ember 中使用 angular-filemanager 插件
我安装angular-filemanager
并bower install angular-filemanager --save
导入了必要的依赖项ember-cli-build.js
。
然后我创建了一个组件,但我不确定如何使用该angular-filemanager
指令。
组件.js:
模板.hbs:
我对 Angular 了解不多,几个月前我才开始学习 ember。为此,我所能做的就是运行该函数指令。
- -编辑 - -
由于我使用的是 mirage,所以我只是创建了带有路径的方法,它对请求和请求admin/file
都没有任何意义。get
post
我将 component.js 更改didInsertElement
为
和 template.hbs 到
我仍然看不到屏幕上显示任何内容,但控制台上出现错误:
javascript - 是否可以在浏览器中拦截非 ajax 请求?
是否可以使用不是通过XMLHttpRequest
对象(ajax)完成的 JavaScript 拦截浏览器中的 HTTP 请求?
我正在使用ember-cli-mirage 模拟API 服务器,它正在使用fakeer。我需要将文件上传(图像)添加到应用程序。模拟上传没有问题,因为它是由 ajax 完成的。但我无法拦截由图像标签(非 ajax 请求)引起的 GET 请求,因为伪装者只拦截通过的请求XMLHttpRequest
,因此无法返回“上传”的数据。
无论如何我也可以拦截非ajax请求吗?
如果不是:那么应该将什么视为最佳实践?这是我到目前为止所考虑的:
- 通过 ajax 检索图像,以便我可以轻松拦截请求。例如,我可以将它们视为具有 base64 编码图像数据作为属性的 ember 数据模型。但我不确定权衡。恐怕这会导致性能问题以及可能导致图像大小(> 1MB)的内存泄漏。
- 传递图像请求并在 ember-cli 附带的快速服务器中处理它们。但是只有当应用程序由 ember-cli 提供时,模拟文件上传才会起作用。并且无法部署开发版本将是一个很大的权衡。
javascript - Ember Mirage:记录创建中的伪造输出重用
我希望模拟一个相当糟糕的 API,它具有重复数据的字段,所以我试图创建一个 Mirage Factory 来生成一些随机数据
例如
ember.js - 遗留应用程序中的 ember-cli-mirage
我们有使用Pretender为测试提供固定装置的应用程序。现在我们正在尝试迁移到ember-cli-mirage。我们不能一次迁移所有的灯具。所以基本上发生的事情是我们正在启动我们自己的 Pretender 服务器,而 ember-cli-mirage 正在启动它自己的服务器。哪个呈现以下警告:
您创建了第二个 Pretender 实例,而已经有一个正在运行。同时运行两个 Pretender 服务器会导致意想不到的结果,并将在未来的主要版本中完全删除。当您不再需要它们响应时,请在您的实例上调用 .shutdown()。
由于这只是一个警告,因此在过渡期间应该不是问题。问题是一旦 Mirage 被加载到我们的应用程序中,旧的 Pretender 路由就会停止响应。我想这就是“......将导致意想不到的结果”所指的。
有机会在手动创建的 Pretender 路线旁边运行 ember-cli-mirage 吗?或者只是使用 Mirage 服务器并在那里注入这些路由?
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)