2016-10-12 85 views
0

我是单元测试我的一个功能。结果正常,但方法的结果集合类型为Position,用于比较的集合类型为Mock<IPosition>。这就是为什么测试总是失败的原因,因为两者之间的比较是不正确的。比较集合与模拟集合

有没有办法可以重写默认比较集合?

结果是类型定位,实现此接口的:

public interface IPosition 
{ 
    char HorizontalPosition { get;} 
    int VerticalPosition { get; }  
} 

但模拟采集是Mock<IPosition>类型。

回答

1

您必须修改集合:

var positions = new List<Position>(); 
var mocks = new List<Mock<IPosition>>(); 

YourComparisonMethod(positions.Cast<IPosition>(), mocks.Select(m => m.Object));