Допустим, у меня есть пользовательская базовая модель.Как заглушить конструктор моделей базовых моделей?
var model = Backbone.Model.extend({
initialize: function(parameters) {
var object = {
key: parameters.key
};
this.callMethod();
this.collection = new Backbone.Collection();
},
callMethod: function() {
//code I want to test
}
});
Как проверить новый экземпляр этой модели без setuping всего этого объекта или любого другого материала, который не имеет отношения к испытанию с использованием QUnit и Sinon? Должен ли я каким-либо образом заглушить этот метод инициализации перед инициализацией модели? Каков правильный способ сделать это, используя эти две библиотеки?
Спасибо за ваше время.
Я хотел бы указать, что ваш заголовок немного выключен, вы не пытаетесь заглушить конструктор, но инициализируете. Это две [разные] (http://backbonejs.org/#Model-constructor) вещи. И да, вы должны заглушить его перед инициализацией новой модели, заглушка - это не машина времени. Что касается Sinon, я не использовал ее много, но выглядел достаточно просто: http://sinonjs.org/docs/#stubs – ivarni
Назовите меня немым, но я просто не понимаю, как вы можете заглушить метод объекта, который еще не создан? Основное stubbing выглядит так: stub = sinon.stub (object, 'methodName'). Я не смог найти пример с stubbing перед инициализацией. – DasBoot
О, хорошо, это хороший момент, я не рассматривал эту импликацию, поскольку я был занят запутыванием конструктора/инициализации. Я попытался бы заглушить его на прототипе (т. Е. Попытаться заглушить 'model.prototype.initialize' перед выполнением' new model() ') – ivarni