Модульное тестирование MVVM Light Messenger сообщение отправляется при выполнении RelayCommand - PullRequest
1 голос
/ 13 апреля 2011

Как мне выполнить модульное тестирование, чтобы посылка мессенджера была вызвана при выполнении RelayCommand?

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

1 Ответ

3 голосов
/ 14 июня 2011

Зарегистрируйтесь в Messenger в качестве получателя сообщения, сохраните сообщение в переменной, а затем убедитесь, что оно соответствует полученному вами сообщению.

...