【发布时间】:2023-03-22 20:15:01
【问题描述】:
我试图覆盖 Jasmine 中的一个函数,但得到一个错误“TypeError: inputField.setAttribute is not a function”。 我需要什么来解决这个问题?我需要嘲笑这个吗?努力了几天来解决这个问题,但没有得到任何解决方案。
谁知道我需要做什么?
功能:
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">');
});
});
【问题讨论】:
标签: javascript angular unit-testing jasmine typeerror