Ich möchte meinen Router testen, die aus Gründen der Einfachheit sieht wie folgt aus:Wie testen Ember.Router
// app.router.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('sessions', function() {
this.route('login');
this.route('logout');
});
this.route('profile');
});
export default Router;
Ist es möglich, Unit-Test oder? Ich versuchte Abnahmen mit, aber ich war nicht erfolgreich:
import Ember from 'ember';
import { test } from 'qunit';
import moduleForAcceptance from 'transformed-admin/tests/helpers/module-for-acceptance';
import startApp from 'transformed-admin/tests/helpers/start-app';
moduleForAcceptance('Acceptance | configuration', {
beforeEach: function() {
this.application = startApp();
},
afterEach: function() {
Ember.run(this.application, 'destroy');
}
});
test('should map routes correctly', function(assert) {
visit('/');
const app = this.application;
andThen(function() {
app.Router.detect("profile"); // false
app.Router.detect("Profile"); // false
const a = app.Router.extend({});
a.detect("profile"); // false
a.detect("Profile"); // false
});
});
Was hier die besten Praktiken sind? Testen Sie überhaupt Router.map()
? Oder verlassen Sie sich auf das Testen von konkreten Routen als Garantie, dass die Router.map()
korrekt geschrieben ist?
Akzeptanztests, die [currentUrl] (http://emberjs.com/api/classes/Ember.Test.html#method_currentURL) und [currentPath] (http://emberjs.com/api/classes/) überprüfen Ember.Test.html # method_currentPath) sollte mehr als genug sein –
Vielen Dank @Kitler – Pavol