작동하는 모듈 (Marionette 사용)의 동작을 테스트하고 싶습니다 (1).Marionette.CompositeView를 사용하는 모듈의 UnitTest
이상하게도 js- 모듈 (1)은 작동하지만 Jasmine을 사용하는 단위 테스트 (2)는 실패합니다.
아이디어가 있으십니까?
(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("should add a new element", 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);
// Expected 0 to equal 1.
});
당신이 RequireJS와 함께 작동하도록 테스트를 설정 한? 그렇지 않다면, 웹을위한 튜토리얼이 있습니다. 검사에서 어떤 오류가 나옵니까? –
@DerickBailey 내가받는 오류는 'Expected 0 to equal 1'입니다. 나는'this.view.appendHtml (collectionView, itemView);를 실행하면 in (1)과 같은 새로운 요소를 추가해야한다고 생각한다. –
이 동작을 보여주는 jsFiddle을 설정해 주시겠습니까? Marionette, Backbone, Jasmine에 익숙하지 않아서 나 자신을 설정하기는했지만, 시작해야 할 부분이 있다면 작동시킬 수 있다고 생각합니다. – redbmk