- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用最新的 Ember (3.2)、ember-cli-mirage 0.4.7、ember-cli-qunit 4.3.2、ember-qunit 3.4.1
我正在使用 ember-cli-mirage 来尝试前端测试,我无法解决此错误:
Uncaught TypeError: template.getProperties is not a function
我正在组件测试中运行它:
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
module('Integration | Component | template-editor', function(hooks) {
setupRenderingTest(hooks);
setupMirage(hooks);
test('it renders', async function(assert) {
const mockTemplate = server.create('template');
this.set('mockTemplate', mockTemplate);
await render(hbs`{{template-editor template=mockTemplate}}`);
assert.equal(this.get('template.name'), 1);
});
});
我的组件 JS 文件的相关部分是这样的:
export default Component.extend({
init () {
this._super(...arguments);
let template = this.get('template');
if ( template ) {
let oldProperties = template.getProperties('body','subject');
this.set('oldProperties',oldProperties);
}
}
});
看起来海市蜃楼模型不是我现实生活中的代码所期望的对象,它是一个 Ember 模型。
到目前为止,我似乎已经遵循了文档,因为这是非常基本的,我在这里缺少什么吗?
我设置 Mirage 的方式只是为模板创建一个 Mirage 工厂并在配置中为其添加路由:
// mirage/config.js
this.get('/templates');
this.get('/templates/:id');
// mirage/factories/template.js
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
subject: faker.lorem.sentence,
insertDatetime: faker.date.past,
body: faker.lorem.paragraphs
});
1 Câu trả lời
没有简单的方法可以将数据/模型从 Mirage 直接获取到您的 Ember 应用程序中。
由于 Mirage 旨在模拟您的服务器层,因此将 Mirage 数据获取到 Ember 的典型方式是当您的 Ember 应用程序发出 Ajax 请求时。这在验收测试中效果很好,因为这些测试执行完整的 Ember 应用程序(在生产中将在加载数据时发出网络请求)。
在集成测试中,可以方便地使用 Ember 应用程序本地的模型,而无需通过网络层。
Mirage 模型永远不应该直接传递到 Ember 组件中,因为它们与 Ember 及其对象模型完全分开。 Mirage 的模型和关系仅设计为在其自己的“假”服务器上下文中工作。
因此,您可以创建 a helper,而不是向集成测试添加实际的网络请求来获取 Mirage 数据。这将让您server.create
Mirage 数据,然后将其强制推送到 Ember Data 的存储中。然后,您可以使用 store.peekRecord 从本地存储中获取模型并将其传递到您的组件中:
let mockTemplate = server.create('template');
this.pushMirageDbIntoStore();
this.set('mockTemplate', this.store.peekRecord('template', mockTemplate.id));
<小时>小时>
我知道这很令人困惑,而且您肯定不是第一个问这个问题的人。我们最终将向 Mirage 添加类似此帮助程序的内容,但目前这是最好的方法。
关于ember.js - Ember Mirage 未将模型作为 ember 对象传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51193119/
Một trong những giáo sư của tôi đã đưa cho chúng tôi một số câu hỏi thực hành cho một kỳ thi và một trong những câu hỏi đó giống như thế này (mã giả): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
Tôi có vẻ sử dụng bài kiểm tra này rất nhiều if( object && object !== "null" && object !== "undefined" ){ doSomething(); } trên một đối tượng, tôi
C# Object/object là kiểu giá trị hay kiểu tham chiếu? Tôi đã kiểm tra rằng họ có thể giữ tham chiếu, nhưng tham chiếu này không thể được sử dụng để thay đổi đối tượng. sử dụng System; lớp MyClass { public static
Tôi đang gặp sự cố khi gửi json qua AJAX. var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
Khi tôi cố truy cập đối tượng {{result}} trong View của mình (mà tôi gửi từ máy chủ Express js), nó chỉ hiển thị [object][object] Có ai biết cách lấy giá trị ở định dạng JSON không? Đây là
Tôi có dữ liệu ở nhiều kiểu khác nhau (có thể là chuỗi, số nguyên...). Sau đây là một ví dụ đơn giản: public static void main(String[] args) { before("one"); }
Xin chào, tôi mới làm quen với json và javascript. Tôi tìm thấy phương pháp sử dụng dữ liệu json làm bảng trên trang web này. Tôi tò mò tại sao khi tôi thử sử dụng dữ liệu json làm bảng, tôi lại nhận được [Object,Object]
Đã đóng. Sự cố này cần có thông tin chi tiết để gỡ lỗi. Hiện tại không chấp nhận câu trả lời. Chỉnh sửa câu hỏi để bao gồm hành vi mong muốn, một vấn đề hoặc lỗi cụ thể và
Tôi nghe người khác nói null == object tốt hơn object == null kiểm tra Ví dụ: void m1(Object obj ) { if(null == obj) // Đây có phải là
Đối tượng Match cung cấp quyền truy cập vào các thuộc tính chỉ đọc của một biểu thức chính quy khớp. Mô tả Đối tượng Match chỉ có thể được tạo thông qua phương thức Execute của đối tượng RegExp, phương thức này thực sự trả về một tập hợp các đối tượng Match. Tất cả
Đối tượng lớp Đối tượng được tạo bằng cách sử dụng câu lệnh Class. Cung cấp quyền truy cập vào nhiều sự kiện khác nhau của lớp học. Mô tả: Không được phép khai báo rõ ràng một biến là kiểu Class. Trong bối cảnh của VBScript, thuật ngữ "đối tượng lớp" đề cập đến một
Đối tượng Folder cung cấp quyền truy cập vào tất cả các thuộc tính của một thư mục. Đoạn mã sau minh họa cách lấy đối tượng Thư mục và xem các thuộc tính của nó: Hàm ShowDateCreated(f
Đối tượng File cung cấp quyền truy cập vào tất cả các thuộc tính của một tệp. Đoạn mã sau minh họa cách lấy đối tượng File và xem các thuộc tính của nó: Hàm ShowDateCreated(fil
Đối tượng Drive cung cấp quyền truy cập vào các thuộc tính của ổ đĩa hoặc chia sẻ mạng. Mô tả Mã sau đây minh họa cách sử dụng đối tượng Drive để truy cập các thuộc tính của ổ đĩa: Hàm ShowFreeSpac
Đối tượng FileSystemObject cung cấp quyền truy cập vào hệ thống tập tin của máy tính. Đoạn mã sau minh họa cách sử dụng đối tượng FileSystemObject để trả về đối tượng TextStream có thể đọc được.
Tôi mới làm quen với JavaScript OOP và tôi nghĩ đây là một câu hỏi khá cơ bản nhưng tôi không thể tìm thấy bất kỳ sự trợ giúp nào khi tìm kiếm trên web. Tôi có bỏ lỡ điều gì không, hay tôi đang làm sai cách? Đây là mã mẫu của tôi: functionio
Tôi có thể dễ dàng tạo ra nhiều đồ vật khác nhau. Ví dụ như thế này: var myObject = { myFunction: function () { return ""; } };
hàm Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = hàm()
Có ai có thể giải thích cho tôi tại sao đoạn mã sau lại trả về (object, Object) không? (console.log(dope) cung cấp những gì nó cần, nhưng trong JSON.stringify và JSON.parse
Tôi đang cố gắng hoàn thành bài tập biểu đồ phân tán từ trại mã miễn phí. Tuy nhiên, tôi mới chỉ tự học d3 được vài giờ và sau khi làm theo hướng dẫn từ lynda.com, tôi đã cố gắng xác định cách hiển thị dữ liệu cụ thể trong chú giải công cụ. Mã này
Tôi là một lập trình viên xuất sắc, rất giỏi!