我正在构建一个相对简单的comment-list
组件。我想传递可评论模型(例如 Post
)并让组件负责创建、编辑、删除评论。现在我传递了所有不同的 Action ,它非常脆弱。
如何在组件集成测试中创建 Ember 数据模型的真实实例?
我的第一 react 是导入模型,然后.create({})
它,但是使用 this.store.createRecord() 代替
/* jshint expr:true */
import { assert } from 'chai';
import { describeComponent, it } from 'ember-mocha';
import hbs from 'htmlbars-inline-precompile';
import Post from 'ownersup-client/post/model';
describeComponent( 'comment-list', 'Integration: CommentListComponent', {
integration: true
},
function() {
it('renders all of the comments', function() {
const model = Post.create({ title: 'title' });
model.get('comments').createRecord({ body: 'One Comment' })
this.render(hbs`{{comment-list model=model}}`);
assert.lengthOf(this.$('.comment-list-item'), 1);
});
}
);
大家有什么想法吗?
最佳答案
在所有 Ember 测试助手中,该商店只能从 moduleForModel
获得。
以下是这个测试助手的工作原理 ( source ):
var container = this.container;
var store = container.lookup('service:store') || container.lookup('store:main');
您可以在测试中执行相同的操作。您还可以将其放入助手中,这样您就不必进行大量复制粘贴。
请注意,它仅适用于集成测试。您可以使用与 Ember CLI 样板捆绑在一起的 startApp
测试助手启动应用,将任何测试转变为集成测试。
关于Ember.js:如何集成测试与 ember 数据模型交互的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895518/