【发布时间】:2013-11-07 17:24:34
【问题描述】:
这里非常少。我有一个要测试的视图模型,但我不确定是否只需要实现一个接口,或者是否有一个模拟框架可以为我完成。
我要做的是给我的视图模型一个 IProcessQueueCommand,并触发 MessageProcessed 事件,该事件将执行我的 lambda,然后设置 LastProcessedMessage
视图模型:
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;
【问题讨论】:
-
您说您有一个要测试的 ViewModel。但是,您要测试 ViewModel 中的确切行为是什么?比如要验证IProcessQueueCommand.MessageProcessed方法被调用还是什么的?
-
我想测试当 this.processQueueCommand 上的 MessageProcessed 事件被触发时, LastProcessedMessage 被更新。我是模拟新手,闻起来好像不是模拟对象的情况
标签: .net unit-testing mocking moq