#jasmine #jasmine-jquery
#jasmine #jasmine-jquery
Вопрос:
Я пытаюсь отследить пользовательское событие на основе некоторых данных, для этого я слежу за своим пользовательским событием и ожидаю, что событие сработает или нет. Здесь я пытаюсь сбросить свой spyevent, все, что я получаю, это неопределенная ошибка
TypeError: undefined is not an object (evaluating 'spyOnEvent(document, 'product.trackVariantChanged').calls.reset')
it('selects a variant without triggering the product.trackVariantChanged event on document', function() {
spyOnEvent(document, 'variantChanged');
spyOnEvent(document, 'product.trackVariantChanged').calls.reset();
App.ColorSelector.init(); // this function automatically calls custom triggers when it calls
App.ColorSelector.selectVariant($colorSelector, 'wms_III_black'); //this function has a depedency on init()
expect('variantChanged').toHaveBeenTriggeredOn(document);
expect('product.trackVariantChanged').not.toHaveBeenTriggeredOn(document);
App.ColorSelector.selectVariant($colorSelector, 'wms_III_white');
expect('variantChanged').toHaveBeenTriggeredOn(document);
expect('product.trackVariantChanged').not.toHaveBeenTriggeredOn(document);
});
из приведенного выше случая App.ColorSelector.init();
эта функция автоматически вызывает / должна получить вызов fisr и запускает пользовательское событие, и App.ColorSelector.selectVariant($colorSelector, 'wms_III_black');
эта функция зависит от функции init()
Итак, я хочу сбросить spy перед selectVariant
вызовом функции.
Ответ №1:
spyOnEvent
Вместо calls.reset()
использования spyOnEvent(document, 'customEvent').reset();
он будет работать.