在文档上重置spyOnEvent

问题描述 投票:0回答:1

我正在尝试根据某些数据跟踪自定义事件,因为我正在监视我的自定义事件并期望事件触发或不触发。这里我试图重置我的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()函数 所以我想在调用selectVariant函数之前重置间谍。

jasmine jasmine-jquery
1个回答
0
投票

对于spyOnEvent而不是calls.reset()使用spyOnEvent(document, 'customEvent').reset();它会工作。

© www.soinside.com 2019 - 2024. All rights reserved.