我使用複合WPF(棱鏡),我試圖單元測試,我的控制器確實訂閱複合事件。爲什麼我的Moq IEventAggregator驗證失敗?
我申購代碼如下...
//Init Events.
this.eventAggregator.GetEvent<PlantTreeNodeSelectedEvent>().Subscribe(
ShowNodeDetails, ThreadOption.UIThread);
我的單元測試代碼如下(我用的起訂量爲我的模擬框架和統一作爲我的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 ......」
一呃想知道我做錯了什麼?