无法从验收测试中修改 Ember Mirage 夹具

Unable to modify Ember mirage fixture from within acceptance test

我创建了一个 fixture,看起来有点像这样。

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

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

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

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

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

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

// 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' });