我正在尝试为我编写的实用程序编写单元测试,以限制输入字段可用的字符。该方法接受键盘事件并确定哪个 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。