我使用复合 WPF(棱镜),我试图单元测试我的控制器确实订阅了复合事件。
我的订阅代码如下...
//Init Events.
this.eventAggregator.GetEvent<PlantTreeNodeSelectedEvent>().Subscribe(
ShowNodeDetails, ThreadOption.UIThread);
我的单元测试代码如下所示(我使用 Moq 作为我的 Mocking 框架和 Unity 作为我的 DI 框架)...
Mock<PlantTreeNodeSelectedEvent> eventBeingListenedTo = new Mock<PlantTreeNodeSelectedEvent>();
eventAggregatorMock.Setup(e => e.GetEvent<PlantTreeNodeSelectedEvent>()).Returns(eventBeingListenedTo.Object);
//Initialize the controller to be tested.
IPlantTreeController controllerToTest = container.Resolve<IPlantTreeController>();
//Verify.
eventBeingListenedTo.Verify(
e => e.Subscribe(It.IsAny<Action<string>>(), ThreadOption.UIThread));
正在调用此订阅方法(我已通过使用调试器运行验证),但验证始终失败,并显示“未在模拟上执行调用:e => e.Subscribe ...”
知道我做错了什么吗?