1

我有一个夹具创建,看起来有点像这样。

// mirage/fixtures/people.js
 export default {
      'people': [
        {
          'id': 1,
          'name': 'Ram',
         },
         {
          'id': 2,
          'name': 'Raja',
         }
       ]
    }

在我的验收测试中,我正在使用这个数组。但在我的测试中,我想修改这个 people 数组并添加,假设另一个对象

{
   'id': 3,
   'name': 'John',
}

注意:我不想使用工厂,因为我不想动态生成所有数据,所以我想从固定装置中获取这个数组,将我的新对象推送到这个数组中,然后返回它。正确的方法是什么?

注意2:不建议在fixtures本身中添加这个对象,因为我想根据我测试中的条件动态地将item添加到fixtures中。

4

1 回答 1

1

这很简单。在海市蜃楼配置中,我们应该这样做

// import peopleFromFixture from '/mirage/fixtures/people'; 
// this.get('/people', (schema, request) => {  
// return peopleFromFixture;  }); 

而是从工厂读取数据并使用server.loadFixtures('people').

所以 config.js 看起来像 =>

this.get('/people'); 

像这样设置你的工厂=>

import { Factory } from 'ember-cli-mirage';
export default Factory.extend({
  id(i) {  return i+1; },
  name() { return faker.name.findName(); }
});

在您的测试用例中,像这样填充原始值和新值 =>

server.loadFixtures('people');
server.create('people', { name: 'John' });
于 2017-05-24T13:16:40.427 回答