问题标签 [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.
javascript - [Ember][Test][Model] 如何测试模型感知组件
我是 ember 社区的新手,我创建了一个组件,它基于给定的 DS.Model 对象生成其内容:
它工作得很好,但我很坚持测试这个。确实我试过:
并使用海市蜃楼来伪造虚拟物体。但它继续失败并出现以下错误:
有人有想法吗?还是我做错了什么?
谢谢
编辑:添加用于代码理解的 ember 函数
javascript - 无法在模板中使用相关模型(EmberJS)
这就是我所拥有的。
2 种模型:“注释”和“用户”。Note 有一个名为“user”的字段,它使复制“1 个用户对许多注释”。数据取自幻影。
备注型号:
用户型号:
海市蜃楼代码:
检索用户模型(正如我在 EmberInspector 看到的那样)。
当我{{model.user.username}}
在模板内使用时,输出为空。
当我使用{{log model.user}}
.
我认为这个问题可能与我在构建笔记列表时在没有“用户”模型的情况下提前检索“笔记”模型有关。
非常感谢您的帮助!
ember.js - 如何在 Mirage 中模拟二进制响应
使用 Mirage 我需要模拟我的 GET 请求,该请求以二进制字符串的形式返回数据(格式为 gzip)。这是我第一次使用 mirage,我不知道我是否在嘲笑二进制响应,我应该返回一个有效值吗?这就是我现在嘲笑它的方式。
这是我的场景:收到来自后端的响应后,我只需将 repose 转换为 blob 并将其下载为文件。如果我在模拟数据时应该创建一个有效的二进制数据,我该如何使用 Mirage 呢?我应该将它作为文件存储在某处并将其用作模拟响应吗?如果有人可以帮助我,我将不胜感激。
ember.js - Ember 海市蜃楼工厂使用 fakerjs 创建一个数组
我希望使用 faker.js 在我的 Ember mirage 工厂中返回一系列电子邮件。
这是代码片段,
我想使用 faker 来动态创建 emails 数组。这已经在fakerjs github中作为问题提出。但是建议的解决方法不能应用于这种情况。
请帮忙。
ember.js - 无法从验收测试中修改 Ember mirage 夹具
我有一个夹具创建,看起来有点像这样。
在我的验收测试中,我正在使用这个数组。但在我的测试中,我想修改这个 people 数组并添加,假设另一个对象
注意:我不想使用工厂,因为我不想动态生成所有数据,所以我想从固定装置中获取这个数组,将我的新对象推送到这个数组中,然后返回它。正确的方法是什么?
注意2:不建议在fixtures本身中添加这个对象,因为我想根据我测试中的条件动态地将item添加到fixtures中。
ember.js - XHR 对象中缺少 ember-cli-mirage 响应标头
试图了解使用我的 api 与 ember-cli-mirage 之间的响应不一致。
我有一个处理程序正在等待对 POST 请求的响应以对用户进行身份验证。处理程序的预期参数是response
,status
和xhr
:
(例如.then(function(response, status, xhr) {...}
)。
使用我的 API,我收到了我期望的结果——响应是数据,状态是 statusText,xhr 是 xhr 对象。然而,使用 ember-cli-mirage 一切都会得到响应(有点),并且 status 和 xhr 都是未定义的。
我的代码片段如下:
海市蜃楼/config.js
身份验证器/devise.js
我相信我做的一切都是正确的,但众所周知我是错的:)。任何帮助深表感谢。
ember.js - 带有 Mirage 的 EmberJS 未完全填充记录
我有一个带有 mirage 和序列化程序的 Ember 模型。当我向模型添加一些新字段时,尽管它们在有效负载中,但它们永远不会被填充:
serializers/application.js
models/property.js
夹具示例:
在normalizeArrayResponse
函数中,检查是否property.property_type
存在于payload.properties.forEach
循环中,但一旦它成为记录,则在模型首次创建后添加的字段(突出显示//new
的始终未定义(property.get('property_type')
例如)。
serialization - Mirage 序列化程序在包含和嵌入某些模型时丢弃 Id
我有海市蜃楼的问题。
我正在定义一个扩展的序列化ActiveModelSerializer
程序serializeIds: 'always'
,在这种情况下,模型使用关系模型id进行序列化。
但是当我想在我使用的序列化内容中包含一些模型时include: ['someModel']
,在这种情况下someModel
会成功包含,但其余关系的id将被忽略。
我怎样才能包括ID?
ajax - ember.js:使用 ajax 请求进行验收测试
我正在编写一个验收测试,其中用户填写表格并向第三方资源发出 ajax 请求。我正在用Ember CLI Mirage模拟请求。
我正在编写一个基本的工作示例,我将在测试通过后对其进行重构。我知道我需要将我的请求抽象为一个服务或实用程序,但我不喜欢在没有围绕它的工作测试的情况下重构我的代码。
但是,我的代码似乎可以正常工作,当我返回更改模板中某些内容的结果时,我无法通过测试。
需要注意的是:我正在模拟的第三方 API 并不平静。
海市蜃楼配置如下:
我还没有设置 Web 服务的规范 URL。它应该是一个外部服务。
我的组件:
你会看到我输出到控制台两次,所以我可以调试它。我不确定这是在编写测试时进行调试的正确方法。
这是我的模板:
最后,我的测试:
控制台日志(我认为)告诉我,在我断言页面向用户显示结果之前,承诺已经解决。但我不能让它通过!一旦我设置 的值result
,它就会失败。
任何帮助,非常感谢。