我正在尝试为Angular 2 Web应用程序编写基本测试,该应用程序试图检查在单击提交按钮时是否正在调用我的submit()函数.
当我这样做时,它在手动测试和我的Jasmine测试中都能正常工作……
<form #addPersonForm="ngForm"> ... <button class="add-button" type="submit" (click)="submit()" tabindex="5">Add Person</button> </form>
但是当我使用ngSubmit时,手动测试工作正常,但Jasmine单元测试失败(它表示从不调用提交函数)…
<form (ngSubmit)="submit()" #addPersonForm="ngForm"> ... <button class="add-button" type="submit" tabindex="5">Add Person</button> </form>
(顺便说一下,我试图让这个ngSubmit方法工作的原因是它在验证和支持回车键方面更好地发挥作用.)
这是我在Jasmine测试中所做的事情……
it('should call the submit method',() => { let debugElement = _fixture.debugElement; let button = debugElement.query(By.css('.add-button')); _fixture.detectChanges(); TestHelper.click(button); expect(submitSpy).toHaveBeenCalled(); });
有什么具体的东西我需要监视我错过了吗?我没有在文档中找到与此问题相关的任何内容.
UPDATE
这是我的点击方法……
/** Simulate element click. Defaults to mouse left-button click event. */ export function click(el: DebugElement | HTMLElement,eventObj: any = ButtonClickEvents.left): void { if (el instanceof HTMLElement) { el.click(); } else { (<DebugElement> el).triggerEventHandler('click',eventObj); } }