小编Jam*_*hoe的帖子

KeyboardEvent 的 Angular 4 单元测试

我正在尝试为我编写的实用程序编写单元测试,以限制输入字段可用的字符。该方法接受键盘事件并确定哪个 event.code 已被触发,并返回 true 或 event.preventDefault()。这很好用,但我无法在茉莉花/业力中测试它。

来自模板的当前输入

<input [(ngModel)]="donationValue" formControlName="donationAmount" 
type="tel" class="donation-amount" (keydown)="checkCharacter($event)" 
placeholder="Enter Amount..."/>
Run Code Online (Sandbox Code Playgroud)

这是我目前的测试

it('should return have defaultPrevented as true', fakeAsync(() => {
        const goalInput = 
fixture.debugElement.query(By.css('input.donation-
amount')).nativeElement;
        const keyEventData = { isTrusted: true, code: 'KeyA' };
        const keyEvent = new KeyboardEvent('keydown', keyEventData);
        goalInput.dispatchEvent(keyEvent);
        tick();
        fixture.detectChanges();                
        expect(keyEvent.defaultPrevented).toBe(true);
    }));
Run Code Online (Sandbox Code Playgroud)

我对这些方法进行了其他测试,但它们被解雇了。我怀疑 isTrusted 属性设置为 false,即使我试图将其设置为 true。

javascript unit-testing karma-jasmine angular

3
推荐指数
2
解决办法
8197
查看次数

标签 统计

angular ×1

javascript ×1

karma-jasmine ×1

unit-testing ×1