我正在编写一个 AngularJS 单元测试,它发出和事件,然后调用服务以查看事件是否被正确处理。
$rootScope.$emit('MY_EVENT');
expect(MyService.foo).toEqual('bar');
我的服务以常规方式实现事件监听器:
// function called asynchronously?
$rootScope.$on('MY_EVENT', function(event, result) {
//do something synchronous
});
虽然我的测试目前通过了,但我担心我的事件侦听器可能正在异步处理。
我的问题是,$rootScope.$digest()
在我的期望之前调用是否足以确保所有事件侦听器都已被调用并返回?