[TestMethod()]
public void ShowSetup_SendsMessage_WhenShowSetupCommandCalled()
{
//Arrange
Messenger.Reset();
MainViewModel target = new MainViewModel();
bool wasCalled = false;
Messenger.Default.Register<NotificationMessage>(this,"Settings",(msg) => wasCalled = true);
//Act
target.ShowSetupCommand.Execute(null);
//Assert
Assert.IsTrue(wasCalled);
}
我看到有一個IMessenger的界面,我試圖嘲弄並設置Messenger.OverrideDefault像這樣的模擬:這是測試MVVM-Light工具包消息的可接受方式嗎?
var mock = new Mock<IMessenger>();
Messenger.OverrideDefault((Messenger)mock.Object);
但我得到了一個無效的轉換錯誤。 OverrideDefault方法不是爲了這個目的,或者更可能是我錯誤地使用它。
或者我會爲接收消息和模擬這些類的接口嗎?我真正想測試的是RelayCommand在被調用時發送消息。