Ich habe eine ember-cli 2.4.2 Anwendung, die eine Route myroute
und eine Vorlage myroute.hbs
enthält.Integrationstest eine Routenvorlage in Ember.js
Wenn ich Integration Testkomponenten, das tue ich so etwas wie dies,
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleForComponent('mycomponent', 'Integration | Component | mycomponent', {
integration: true
});
test('the component', function(assert) {
this.render(hbs`
{{#mycomponent}}
text
{{/mycomponent}}
`);
assert.notEqual(this.$('.container').text().trim(), 'text');
});
Wenn ich moduleFor('route:myroute')
verwenden, this.render()
der Anruf wirft this.render is not a function
. Wie unten, wenn ich rufe route.render()
es wirft Error: Assertion Failed: Could not find "hbs{{myroute}}" template, view, or component.
Das Ziel ist es, Integrationstest eine Route Vorlage. Ich möchte jQuery verwenden, um sicherzustellen, dass die Vorlage korrekt gerendert wird. Ich habe einige berechnete Eigenschaften auf der Route, die beeinflussen, was angezeigt wird.
Ich kann nicht scheinen, irgendeine gute Dokumentation auf Integration zu finden, die eine Wegschablone prüft. Irgendwelche Ideen oder Hinweise? Danke vielmals.
import Ember from 'ember';
import { moduleFor, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleFor('route:myroute', 'Integration | Route | myroute', {
integration: true,
});
test('the route', function(assert) {
const mockModel = {
response: { field1: true, field2: false }
};
const route = this.subject({ model: mockModel });
route.render(`hbs{{myroute}}`);
// ...
});
Es gibt einen Tippfehler - die 'hbs' sollten außerhalb der Backticks sein. Funktioniert es? –