11

我正在做我的单元测试,感觉我做错了什么。我有一个有很多关系的“主要”对象

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 })

每次我对其相关项目(person, category, impact)进行单元测试时,我都必须重现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

4

1 回答 1

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() { });
于 2015-01-29T12:53:46.747 回答