我正在使用 Backbone 和 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" );
});
我该怎么办?我需要某种单身人士或其他东西吗?