[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);
}
Je vois qu'il ya une interface IMessenger et j'ai essayé de se moquer et mettre Messenger.OverrideDefault à la maquette comme ceci:Est-ce une façon acceptable de tester les messages MVVM-Light Toolkit?
var mock = new Mock<IMessenger>();
Messenger.OverrideDefault((Messenger)mock.Object);
Mais j'ai eu une erreur de casting non valide. Est-ce que la méthode OverrideDefault n'est pas dans ce but ou plus probablement je ne l'utilise pas correctement.
Ou aurais-je une interface pour les classes qui reçoivent les messages et les moque? Tout ce que je veux vraiment tester, c'est qu'un RelayCommand envoie un message quand il est appelé.