I want to migrate from MVVM Light to Microsoft Toolkit MVVM and I have a problem with my unit tests. I don't know how to properly wrap IMessengerExtensions
and IMessenger
to use them in unit testing.
Example of a test I have in my project:
public void LoadingFinishedTest()
{
var messengerMock = new Mock<IMessenger>();
messengerMock.Setup(mock => mock.Send(It.Is<IsLoadingMessage>()));
var testedViewModelMock = new Mock<SomeViewModel>(messengerMock.Object);
testedViewModelMock.Object.LoadingFinished();
messengerMock.Verify(mock => mock.Send(It.Is<IsLoadingMessage>(), Times.Once);
}
And of course, if I do not wrap anything and simply try to run the test, I get the following error:
System.NotSupportedException: Type to mock must be an interface, a delegate, or a non-sealed, non-static class.
Could someone please explain what I may be doing wrong?