Ember.js:如何集成测试与 ember 数据模型交互的组件

标签 ember.js ember-data ember-cli

我正在构建一个相对简单的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/

相关文章:

javascript - 使用带有定时队列排出的 Ember 观察者

javascript - Ember.js 路由器/ Controller 属性

javascript - 如何在 Ember.js 中从 Mirage 获取数据?

ember.js - Ember cli 适配器为类型设置自定义路径

api - ember-data REST 服务器 API 应该返回什么?

Ember.js:直接加载相关模型

ember.js - ember-cli App.get/App.set 抛出未定义

javascript - 我想检查 Ember.js 中的所有表行

javascript - 如何创建依赖于普通变量、函数或逻辑的 ember 属性?

javascript - EmberJS 和 REST