【发布时间】:2010-11-14 07:24:40
【问题描述】:
我使用复合 WPF(Prism),我正在尝试对我的控制器确实订阅复合事件进行单元测试。
我的订阅代码如下...
//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...”
知道我做错了什么吗?
【问题讨论】:
标签: wpf unit-testing moq unity-container eventaggregator