问题描述
|
执行RelayCommand时,如何对调用Messenger发送的单元进行单元测试?
viewmodelClass:
public class Myviewmodel
{
public Myviewmodel()
{
this.MyCommand = new RelayCommand(() => SendMyMessage());
}
public int Id { get; set; }
public RelayCommand MyCommand { get; private set; }
private void SendMyMessage()
{
Messenger.Default.Send<int,Otherviewmodel>(this.Id);
}
}
单元测试:
[TestClass]
public class When_MyCommand_Is_Executed
{
[TestMethod]
public void A_Message_Is_Sent()
{
//Arrange
var vm = new Myviewmodel();
//Act
vm.MyCommand.Execute(1);
//Assert
//What to do here ?
}
}
解决方法
在Messenger上注册为邮件的收件人,将邮件存储在变量中,然后检查它是否是您收到的正确邮件。