Ember测试带有方法调用的父路由

问题描述 投票:0回答:1

我被带到项目的“后端”,并被要求帮助编写应用程序的测试。我是Ember的新手,只需要一点帮助就可以开始使用。我们正在尝试为路线提供单元测试,因此我们可以在应用程序上拥有更多的分子范围,而不是验收测试。我看了一些教程,并经历了我能想到的每种可能的情况。我只需要快速入门。

这是该路由的route.js的一部分。

  • 此父路由的下游,我们还有另一个嵌套的路由,它显示联系人列表,并且当用户单击显示按钮时,它将调用“模型”,并为模板和url返回该变量“ rec”


export default Route.extend(ScrollTo, {
  flashMessages: service(),

  model: function(params) {
    let rec= this.store.peekRecord('contact', params.contact_id);
    return rec;
  },

  actions: {
    saveContact: function() {
      let model = this.currentRouteModel();
      model
        .save()
        .then(() => {
          //this.refresh();
          //this.setModelHash();
          this.flashMessages
            .success(`Saved Contact: ${model.get('title')}`);

          //this.transitionTo('contacts');
        });
    }

这里是测试的预生成代码。我真的没有做任何修改,因为我真的不知道从哪里开始。

  • 此应用没有后端,其设计是根据用户想要的标准来接收信息并提供iso文件。
  • 我确定我需要为测试提供一些模拟数据并将其发送给方法,但同样不确定我使用的Qunit部件。
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';

module('Unit | Route | contact/show', function(hooks) {
  setupTest(hooks)

  test('it exists', function(assert) {
    var route = this.owner.lookup('route:contact/show');
    assert.ok(route, 'contact.show route works');
  });
});
unit-testing testing ember.js ember-qunit
1个回答
0
投票

当我第一次进入前端测试时,我也为此感到困惑。凭借几年的经验,我很有信心地说您不应以这种方式对路线对象进行单元测试。相反,对余烬应用程序的测试应侧重于两种类型的测试。

  1. 什么是余烬称为集成测试(但实际上更接近于UI单元测试)
  2. 验收测试
组件上的

Integration tests可让您深入研究较小的细节和边缘情况,它们可能会非常有价值。

在这种情况下,我认为您实际上想要的是acceptance test

如果您的测试经历完全像我的,那会感觉您一开始就测试了太多东西,但是这些类型的测试实际上是浏览器加载整个应用程序的,在寻找错误方面最有价值,也是最重要的。随时间可维护。

© www.soinside.com 2019 - 2024. All rights reserved.