当执行RelayCommand时,发送单元测试MVVM Light Messenger消息

问题描述

| 执行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上注册为邮件的收件人,将邮件存储在变量中,然后检查它是否是您收到的正确邮件。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...