微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。