Ember-cli单元测试关系的需求

时间:2015-01-05 22:32:49

标签: unit-testing ember.js ember-cli ember-testing

我正在进行单元测试,感觉我做错了。我有一个'主'对象有很多关系

author: belongsTo('person', { async: true }),
title: attr('string'),
category: belongsTo('category', { async: true }),
impact: belongsTo('impact', { async: true }),
status: attr('string'),
createdDate: attr('moment'),
submittedDate: attr('moment'),
authorOrg: belongsTo('organization', { async: true }),
locations: hasMany('location', { async: true }),
audits: hasMany('audit', { async: true })

每次我处理其相关项目(personcategoryimpact)的单元测试时,我都必须重现所有needs我的'主'对象具有的值。当我的位置单元测试只关心其名称及其与“主”对象之间的关系的字符串时,我感觉不适合需要category

// location/model-test.js
import {
  moduleForModel,
  test
} from 'ember-qunit';

moduleForModel('location', 'Location', {
  // Specify the other units that are required for this test.
  needs: ['model:main', 'model:person', 'model:category',
      'model:impact', 'model:organization', 'model:location']
});

我做错了什么或是否有更好的方法来构建我的单元测试以处理关系?

我使用的是ember-cli 0.1.5,ember 1.9.1和ember-data beta 14

1 个答案:

答案 0 :(得分:1)

我已经使用了一个包装器函数来为模块标签添加一个说明符,然后每次我想要一个新模块时都使用这个便捷函数:

var anotherModule = function(suffix) {
  moduleForModel('location', 'Location - ' + suffix, {
    needs: ['model:main', 'model:person', 'model:category',
      'model:impact', 'model:organization', 'model:location']
  });
};

anotherModule("module 1");
test("test 1.1", function() { });
test("test 1.1", function() { });

anotherModule("module 2");
test("test 2.1", function() { });