【发布时间】:2020-03-09 14:57:17
【问题描述】:
我创建了自定义指令来填充自动破折号。这是stackblitz 中的完整自定义指令代码。我可以知道如何在 jasmine 中测试 mask.ts 中的以下几行(单元测试)吗?
mask.ts
@HostListener('input', ['$event'])
onKeyDown(event: KeyboardEvent) {
const input = event.target as HTMLInputElement;
let trimmed = input.value.replace(/\s+/g, '');
mask.spec.ts
@Component({
template: `
<input type="text" dobMask />
`,
})
class TestdobMaskComponent {}
describe('dobMask', () => {
let component: TestdobMaskComponent;
let fixture: ComponentFixture<TestdobMaskComponent>;
let inputEl: DebugElement;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [TestdobMaskComponent],
});
fixture = TestBed.createComponent(TestdobMaskComponent);
component = fixture.componentInstance;
inputEl = fixture.debugElement.query(By.css('input'));
});
it('should auto populate dash when reach 6 characters', () => {
const input = inputEl.nativeElement as HTMLInputElement;
});
});
【问题讨论】:
-
@Ali 是的。我也尝试了几种方法。他们都不为我工作。
标签: angular unit-testing karma-jasmine directive keyboard-events