【发布时间】:2019-07-15 01:29:29
【问题描述】:
我有一个组件,它的方法负责关闭对话框。对话框关闭方法返回承诺。
closeDialogAction(callback: Function) {
this.confirmationDialog.close(true).then(() => {
callback();
});
}
如何编写一个单元测试来检查我的回调是否被调用? 我是这样尝试的,但没有成功。
it('should call callback function after close dialog', () => {
const cb = jasmine.createSpy('cb');
this.componentInstance.closeDialogAction(cb);
expect(cb).toHaveBeenCalled();
});
【问题讨论】:
-
你能澄清一下 this.confirmationDialog 是什么吗?如果在测试中被模拟,那么请同时提供用作模拟的对象
-
这值得单元测试吗?您的测试现在对代码有了深入的了解,坦率地说,仅仅因为您调用了一个名为 close 的方法,这并不意味着实际上已经关闭了任何东西。
-
一切都值得测试。确认对话框实际上是确认对话框,而关闭是关闭该对话框的方法,它返回承诺,因为有关闭动画。关闭动画完成后,我正在为不同的操作传递一个回调函数。所以我认为对该调用进行单元测试非常重要。
标签: angular unit-testing promise jasmine