【问题标题】:Unit test MVVM Light Messenger message is sent when a RelayCommand is executed执行 RelayCommand 时发送单元测试 MVVM Light Messenger 消息
【发布时间】:2011-04-13 13:11:14
【问题描述】:

如何对执行 RelayCommand 时调用 messenger send 进行单元测试?

ViewModel类:

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 ?
   }
}

【问题讨论】:

    标签: unit-testing mvvm-light relaycommand


    【解决方案1】:

    在 Messenger 上注册为消息的收件人,将消息存储在变量中,然后检查它是否是您收到的正确消息。

    【讨论】:

    • 你能用代码详细说明一下吗?我听不懂你在说什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2012-09-02
    相关资源
    最近更新 更多