gpt4 book ai didi

angular - 如何测试 angular 2 指令提供的参数与调用目标的任何签名都不匹配

转载 作者:行者123 更新时间:2023-11-28 21:24:53 25 4
gpt4 key购买 nike

我有我想要测试的指令。每次运行测试时,我都会收到一条错误消息,提示“提供的参数与调用目标的任何签名都不匹配”。如何将构造函数的参数获取到测试中?

这是我的指令:

import { Directive, ElementRef, HostListener, Input, Renderer } from '@angular/core';

@Directive({
selector: '[fbInputlistener]'
})
export class InputlistenerDirective {

constructor( private elRef: ElementRef, private renderer: Renderer ) { }

@HostListener('keyup') onKeyUp() {
if(this.elRef.nativeElement.value.length > 0) {
this.renderer.setElementClass(this.elRef.nativeElement, 'form__input--has-value', true);
} else {
this.renderer.setElementClass(this.elRef.nativeElement, 'form__input--has-value', false);
}
}
}

这是它的测试:

import { InputlistenerDirective } from './inputlistener.directive';

describe('InputlistenerDirective', () => {
it('should create an instance', () => {
const directive = new InputlistenerDirective();
expect(directive).toBeTruthy();
});
});

最佳答案

import {TestBed, ComponentFixture} from '@angular/core/testing';
import {By} from "@angular/platform-browser";
import {Component, DebugElement} from "@angular/core";
import { InputlistenerDirective } from './inputlistener.directive';

@Component({
template: `<input type="number" fbInputlistener value="12345">`
})
class TestInputComponent {
}

describe('InputlistenerDirective', () => {
let component: TestInputComponent;
let fixture: ComponentFixture<TestInputComponent>;
let inputEl: DebugElement;


beforeEach(() => {
TestBed.configureTestingModule({
declarations: [TestInputComponent, InputlistenerDirective]
});

fixture = TestBed.createComponent(TestInputComponent);
component = fixture.componentInstance;
inputEl = fixture.debugElement.query(By.css('input'));
});

It('Directive should add class to test input', () => {
inputEl.triggerEventHandler('keyup', null);
fixture.detectChanges();

expect(inputEl.nativeElement.classList.length).toBe(1);
});
});

关于angular - 如何测试 angular 2 指令提供的参数与调用目标的任何签名都不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43258673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com