我得到了一个包含1个子组件的组件。是这样的:Angular 2 - 测试回调到子组件中的事件
<custom-component (customEvent)="foo()"></custom-component>
富是做东西的功能,假设是一个简单的增量。
我想编写一个单元测试,以确保自定义事件发出后,实际发生的增量。
是我的尝试目前在试做的是这样的:
let oldValue = component.variableThatShouldBeIncremented;
childComponent.onCustomEvent.emit();
expect(component.variableThatShouldBeIncremented).toBeGreaterThan(oldValue);
这并不目前的工作。但如果我在setTimeout中包含期望值,它确实如此。这是有意义的,因为事件是异步的。
我想摆脱setTimeout。有没有办法告诉“等到事件回调已经完成”?
我试着寻找例子,但我只找到了检查发现特定事件而不是检查发射特定事件的后果的测试。
编辑:
我走了正确的答案yurzui。代码应该工作。我通过简化Q的代码犯了一个错误,省略了实际导致问题的代码:foo函数。
该函数从服务调用函数,它不是一个简单的增量。
为了便于参考,我的实际问题是为服务的模拟版本创建的间谍没有在该事件处理程序中注册对该函数的调用。现在的问题解决了
为什么写'(customEvent)=“foo”'而不是'(customEvent)=“foo()”'? – yurzui
对不起,这是一个错字。我编辑了这个问题:) –