#javascript #unit-testing #testing
#javascript #модульное тестирование #тестирование
Вопрос:
Я начал использовать Google js test и застрял, пытаясь выполнить модульное тестирование селектора jquery ниже — на самом деле я хочу проверить, была ли вызвана функция добавления, но для этого требуется селектор.
‘jQuery’ — это объект jQuery ($), который я вводю в функцию.
JQuery('#' containerElementId).append('some html');
Я создал объект, который я использую в качестве макета для jQuery
this.jQuery = {
добавить: createMockFunction()
};
Я хотел бы проверить, что append вызывается:
expectCall(this.jQuery(_).append)();
-OR-
expectCall(this.jQuery('#fakeselector').append)();
Это выдает ошибку:
Ошибка типа: свойство ‘jQuery’ объекта # не является функцией
СБОЙ
Что мне нужно сделать с литералом объекта this.jQuery, чтобы обойти селектор?
Ответ №1:
Обнаружил, что вы можете создать макет, подобный этому:
var jqueryEmptyStub = {
append: createMockFunction()
};
var jQueryMock = function (rootSelector) {
return jqueryEmptyStub;
};
var myObject = anObject(jQueryMock );
expectCall(jqueryEmptyStub.append)();
myObject.doSomethingThatCallsAppend();