我有一个看起来有点像这样的夹具。
// mirage/fixtures/people.js
export default {
'people': [
{
'id': 1,
'name': 'Ram',
},
{
'id': 2,
'name': 'Raja',
}
]
}
在我的验收测试中,我正在使用这个数组。但在我的测试中,我想修改这个人数组并添加,假设另一个对象
{
'id': 3,
'name': 'John',
}
注意:我不想使用工厂,因为我不希望动态生成所有数据,因此我想从fixture中获取此数组,将我的新对象推入此数组然后返回它。这样做的正确方法是什么?
注意2:不建议在灯具本身添加此物体,因为我想根据测试中的条件动态地将物品添加到灯具中。
答案 0 :(得分: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(); }
});
在测试用例中,填充原始值和新值,例如this =>
server.loadFixtures('people');
server.create('people', { name: 'John' });