1

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

视图模型类:

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

1 回答 1

3

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

于 2011-06-14T18:35:54.107 回答