0
考虑下面的代码(在C#中,但它可以是任何其他语言):如何测试使用依赖项来复制对象的方法?
public interface IObjectCopier
{
void Copy<T>(T source, T target);
}
public class Model
{
public string Name { get; set; }
}
public class ViewModel
{
private readonly IObjectCopier _objectCopier;
public ViewModel(IObjectCopier objectCopier)
{
_objectCopier = objectCopier;
}
public Model ViewBindData { get; set; }
public void Load(Model model)
{
_objectCopier.Copy(model, ViewBindData);
}
}
如何构建Load方法单元测试?如果我模拟IObjectCopier,那么我需要提供一个Copy方法的模拟实现。在这个例子中,它是微不足道的,但在真实世界的场景中,模型对于子模型来说可能很大,模拟练习感觉它只是复制IObjectCopier实现所做的事情。
T Copy<T>(T source);
作为这种情况下模拟设置急剧简化为:如果我可以改变Copy方法以下
问题被简化。问题是有Model对象的视图绑定,我不能简单地销毁和重新创建对象。
有没有一种优雅的方式来解决这个问题?
之间的区别当然!我有点生疏。我应该只关心复印机是否被调用。谢谢。 – Hawk