这里很小。我有一个我想测试的视图模型,我不确定我是否只需要实现一个接口,或者是否有一个可以为我做的模拟框架。
我想要做的是给我的viewmodel一个IProcessQueueCommand,并激活将执行我的lambda的MessageProcessed事件,然后设置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;
答案 0 :(得分:0)
您可以使用假对象或模拟对象进行测试。
假对象: 实现IProcessQueueCommand接口并公开“fire event”方法的对象。您可以在视图模型中注入实例,调用“fire event”方法并最终测试LastProcessedMessage属性
模拟对象: 完全相同,但假实现和“火灾事件”方法是由模拟框架动态生成的。
希望它有所帮助。