Viele Weg, dies zu testen, aber die, die ich bevorzuge, ist durch Spionage/stubbing ember-sinon verwenden.
Vorausgesetzt, dass Sie diese Aktion zum Erstellen und Speichern eines Datensatzes:
import Route from 'ember-route';
export default Route.extend({
actions: {
createAndSaveTheRecord() {
this.store.createRecord('dummy_model', {
id: 'dummy',
name: 'dummy'
}).save();
}
}
});
Sie können einen Test haben, der wie folgt aussieht:
import sinon from 'sinon';
test('should create a record', function(assert) {
assert.expect(1);
// Arrange
let stub = sinon.stub().returns({save: sinon.stub()});
let route = this.subject({store: {createRecord: stub}});
// Act
route.send('createAndSaveTheRecord');
// Assert
assert.ok(stub.calledWith('dummy_model', {id: 'dummy', name: 'dummy'}));
});
test('should save the created record', function(assert) {
assert.expect(1);
// Arrange
let spy = sinon.spy();
let route = this.subject({
store: {
createRecord: sinon.stub().returns({
save: spy
})
}
});
// Act
route.send('createAndSaveTheRecord');
// Assert
assert.ok(spy.calledOnce);
});
Sie brauchen nicht ember Daten in Einheit zu verwenden Tests zum Erstellen von Datensätzen. Sie können einen Scheinspeicher erstellen, um das Ember.Object mit denselben Attributen wie Ihr Modell zurückzugeben. –
Ich widerspreche in der Praxis nicht. Ich denke, was ich wirklich verstehe, ist eine gute Möglichkeit, zu testen und sicherzustellen, dass meine Modelle korrekt konfiguriert sind, um die richtigen Endpunkte zu generieren. – user2296332