我使用的骨干和Require.js。 一切都很正常,但我想一些单元测试添加到我的应用程序。 我决定使用Qunit.js。
在我main.js文件中创建新的对象EventsView
:
require.config({
paths: {
jquery: 'libs/jquery',
underscore: 'libs/underscore',
backbone: 'libs/backbone',
qunit: 'test/libs/qunit-1.10.0
}
});
require(['view/eventsView',
'test/eventsView_test',
'test/eventView_test' ], function(EventsView){
var events = new EventsView; //here I create first object my View
});
在eventsView.js initialize
我呈现的主视图
define(['jquery',
'backbone',
'underscore',
'collection/eventC',
'model/eventM',
'view/eventView'], function($, Backbone,_,EventC,EventM, EventView,){
var EventsView = Backbone.View.extend({
el: $(".contener"),
initialize: function(){
this.render();
},
....//other functions
});
return EventsView;
});
所以现在我需要从这一观点在其他文件eventsView_test.js调用函数。 我不能像这样做,因为该视图将再次呈现:
define(['jquery','qunit','view/eventsView'], function($,qunit,EventsView){
//var eventsView = new EventsView(); // I can't create object here
test( "first_test_func", function() {
var result = eventsView.first_test_func(2,2);
equal( result, 4, "2 square equals 4" );
});
我该怎么办? 我是否需要某种形式的单身或别的什么?