如何在Jasmine中设置功能?

我正在尝试在Jasmine中介绍一个函数,但出现错误“ TypeError:inputField.setattribute不是函数”。 我需要解决什么?我需要嘲笑吗?几天来解决这个问题,但没有任何解决方法。

知道我需要做什么的人吗?

功能:

setInput() {
    const inputField = this.$document[0].querySelector('.input-field');

    if (this.inputElement.styles.includes('InputYes')) {
        inputField.setattribute('input-yes','');
    } if (this.inputElement.styles.includes('InputNo')) {
        inputField.setattribute('input-no','');
    }
}

茉莉花:

describe('setInput method',() => {
    it('test',() => {
        // given
        var spy = spyOn(document,'querySelector').and.returnValue(angular.element('<input class="input-field" type="text">'));
        const inputController = new InputController(this.$document);
        inputController.inputElement = {
            styles: ['InputYes']
        };

        // when
        inputController.setInput();

        // then
        expect(inputController.$document[0].querySelector('.input-field')[0].getattribute('input-yes')).toBe('');
        expect(spy).toHaveBeenCalledWith('<input class="input-field" input-yes type="text">');
    });
});
chipingguodexiaowang 回答:如何在Jasmine中设置功能?

我正在猜测,但基于快速的代码审查。您的代码以数组的形式访问$document

this.$document[0].querySelector('.input-field');

但是,您的间谍只是在文档上:

 var spy = spyOn(document,'querySelector').and.returnValue(angular.element('<input class="input-field" type="text">'));

根据您共享的代码,我猜$document[0]document不同

我假设如果您监视组件中的$document对象,可能会得到更好的结果。像这样:

var spy = spyOn(inputController.$document[0],'querySelector').and.returnValue(angular.element('<input class="input-field" type="text">'));
本文链接:https://www.f2er.com/3065276.html

大家都在问