将集合与模拟集合

时间:2016-10-12 17:08:08

标签: c# unit-testing

我正在测试我的一个功能。结果没问题,但是方法的结果集合属于Position类型,用于比较的集合属于Mock<IPosition>类型。这就是测试总是失败的原因,因为两者之间的比较是不正确的。

有没有办法可以覆盖集合之间的默认比较?

结果的类型为Position,它实现了这个接口:

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

但是模拟集合的类型为Mock<IPosition>

1 个答案:

答案 0 :(得分:1)

您必须修改集合:

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

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