2013-11-07 2 views
0

Довольно минимальный здесь. У меня есть модель просмотра, которую я хочу протестировать, и я не уверен, что мне просто нужно реализовать интерфейс, или если есть насмешливая структура, которая может сделать это для меня.Могу ли я использовать макет для проверки этого?

То, что я хочу сделать, это дать мой ViewModel IProcessQueueCommand, и огонь событие MessageProcessed, который будет выполнять свою лямбда, а затем установить LastProcessedMessage

ViewModel:

public string LastProcessedMessage 
{ 
    get 
    { 
     return this.lastProcessedMessage; 
    } 
    private set 
    { 
     this.lastProcessedMessage = value; 
     this.FirePropertyChanged("LastProcessedMessage"); 
    } 
}private string lastProcessedMessage; 

public IProcessQueueCommand ProcessQueueCommand 
{ 
    get 
    { 
     return this.processQueueCommand; 
    } 
    set 
    { 
     this.processQueueCommand = value; 
     this.processQueueCommand.MessageProcessed += (evt) => 
     { 
      this.LastProcessedMessage = evt.Text; 
     }; 
    } 
}private IProcessQueueCommand processQueueCommand; 
+0

Вы говорите, что у вас есть ViewModel, который вы хотите протестировать. Но какое точное поведение в вашей модели ViewModel вы хотите проверить? Например, вы хотите проверить, вызван ли метод IProcessQueueCommand.MessageProcessed или что-то еще? – Spock

+0

Я хочу проверить, что при запуске события MessageProcessed в this.processQueueCommand обновляется LastProcessedMessage. Я новичок в насмешке, и это пахнет, как будто это не случай для макета – MStodd

ответ

0

Вы можете проверить его с помощью подделки объект или с макетным объектом.

Поддельный объект: объект, который реализует интерфейс IProcessQueueCommand и предоставляет метод «события пожара». Вы можете ввести экземпляр в свою модель просмотра, вызвать метод «событие пожара» и, наконец, проверить свойство LastProcessedMessage

Mock Object: точно так же, но методы поддельной реализации и «события пожара» генерируются на летать от насмешливой рамки.

надеюсь, что это поможет.

Смежные вопросы