Ich möchte das Verhalten eines Moduls testen (mit Marionette), das funktioniert (1).
Seltsamerweise funktioniert das js-Modul (1), aber der Unit-Test (2) mit Jasmine schlägt fehl.
Irgendwelche Ideen?
(1)
/*global define*/
define([
'marionette',
'tasks/views/item',
'text!tasks/templates/list.html',
'collections/tasks'
], function (Marionette, itemView, listTemplate, TaskCollection) {
"use strict";
var ListView = Marionette.CompositeView.extend({
initialize: function () {
this.collection = new TaskCollection();
this.collection.fetch();
},
template: listTemplate,
itemView: itemView,
appendHtml: function (collectionView, itemView) {
collectionView.$el.find('ul.tasks').append(itemView.el);
}
});
return ListView;
});
(2)
// spec file
it("sollte ein neues Element hinzufügen", function () {
// TODO
var itemView = new Backbone.View(),
collectionView = new Backbone.View();
this.view.appendHtml(collectionView, itemView);
expect(this.view.$el.find('ul.tasks').length).toEqual(1);
// Erwartet wurde 0, um 1 zu entsprechen.
});
0 Stimmen
Hast du die Tests so eingerichtet, dass sie mit RequireJS funktionieren? Wenn nicht, gibt es Tutorials im Web, die dir dabei helfen. Welche Fehlermeldungen bekommst du von den Tests?
0 Stimmen
@DerickBailey der Fehler, den ich bekomme, ist
Erwartet 0, um 1 entspricht.
. Ich vermute, dass das Ausführen vonthis.view.appendHtml(collectionView, itemView);
ein neues Element hinzufügen sollte wie in (1).0 Stimmen
Könnten Sie bitte ein jsFiddle einrichten, das dies in Aktion zeigt? Ich bin nicht vertraut genug mit Marionette, Backbone und Jasmine, um es selbst einzurichten, aber ich denke, ich könnte es zum Laufen bringen, wenn ich etwas zum Einstieg hätte.