【发布时间】:2018-04-16 12:46:53
【问题描述】:
我正在尝试为我编写的实用程序编写一个单元测试,以限制输入字段的可用字符。该方法接受键盘事件并确定触发了哪个 event.code 并返回 true 或 event.preventDefault()。这很好用,但我无法在 jasmine / karma 中对其进行测试。
来自模板的当前输入
<input [(ngModel)]="donationValue" formControlName="donationAmount"
type="tel" class="donation-amount" (keydown)="checkCharacter($event)"
placeholder="Enter Amount..."/>
这是我目前的测试
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);
}));
我在这些方法上发现了其他测试,但它们正在被解雇。我怀疑 isTrusted 属性设置为 false,即使我尝试将其设置为 true。
【问题讨论】:
-
请将您的 HTML 和组件代码更新到帖子中
标签: javascript angular unit-testing karma-jasmine