1

Ich habe eine Leuchte erstellen, die in etwa so aussieht.Ember mirage Fixture aus dem Abnahmetest kann nicht geändert werden

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

In meinem Abnahmetest verwende ich dieses Array. Aber in meinem Test, möchte ich diese Leute Array ändern, und fügen Sie an, dass ein anderes Objekt

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

Hinweis: Ich möchte nicht Fabriken verwenden, wie ich alle Daten nicht wollen, dynamisch generiert werden, so möchte ich nehmen Array von Fixtures, schieben Sie mein neues Objekt in dieses Array und geben Sie es dann zurück. Was ist der richtige Weg?

Hinweis2: Schlagen Sie nicht vor, dieses Objekt in Fixtures selbst hinzuzufügen, da ich Objekte dynamisch zu dem Fixture basierend auf den Bedingungen in meinem Test hinzufügen möchte.

+1

Ich bin ein bisschen verwirrt. Welche Mirage-Version verwendest du? AFAIK 'server.create' wird nur mit Fabriken verwendet. Um Fixture-Daten zu laden, sollten Sie ['server.loadFixtures()'] (http://www.ember-cli-mirage.com/docs/v0.3.x/configuration/#loadFixtures) –

+0

Hi @RamyBenAroya ausführen In meiner config.js für Mirage, ich mache 'importieren peopleFromFixture von '/ mirage/Fixtures/Menschen';' 'this.get ('/ Personen', (Schema, Anfrage) => {' 'return peopleFromFixture;' '});' – Siwalik

+0

Das klingt falsch. Sie erstellen die Modelle nie in der Mirage-Datenbank. Sie haben im Grunde eine eigene kleine db für Leute erstellt, die das exportierte Objekt in '/ mirage/fixtures/people' ist. –

Antwort

1

Das war ziemlich einfach. In der mirage config wir sollten diese nicht tun

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

stattdessen Daten von Fabriken lesen und original Befestigungs Werte mit server.loadFixtures('people') zu füllen.

So wird config.js wie = aussieht>

this.get('/people'); 

Legen Sie Ihre Fabrik wie diese =>

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

In Ihrem Testfall, füllt ursprüngliche und neue Werte wie diese =>

server.loadFixtures('people'); 
server.create('people', { name: 'John' }); 
Verwandte Themen