IEvenAggregator.Publish
定义为
void Publish(object message, Action<System.Action> marshal);
因此,您需要提供一个合适的表达式来匹配该定义。
eventAggregatorMock.Verify(_ => _.Publish(It.IsAny<MyEvent>(),
It.IsAny<Action<System.Action>>()), Times.Once);
PublishOnUIThreadAsync
扩展方法返回任务
public static Task PublishOnUIThreadAsync(this IEventAggregator eventAggregator, object message) {
Task task = null;
eventAggregator.Publish(message, action => task = action.OnUIThreadAsync());
return task;
}
所以应该等待
public async Task Navigate() {
await eventAggregator.PublishOnUIThreadAsync(new MyEvent(5));
}