我使用了这个DistinctBy 方法,不同之处在于我没有将它用作扩展。现在我想为另一个调用这个方法的方法编写一个单元测试,所以我想设置返回。
“DistinctBy”方法
public IEnumerable<TSource> DistinctBy<TSource, TKey>(
IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
if (seenKeys.Add(keySelector(element)))
{
yield return element;
}
}
}
初始设置 现在我有这样的东西(我正在使用 Autofac 的 Moq,Automock 功能):
List<Product> listProduct = new List<Product>{ product1, product2 };
mock.Mock<IHelpers>()
.Setup(r => r.DistinctBy<List<BeautyBoutiqueArticle>, int>(It.IsAny<List<BeautyBoutiqueArticle>>(), It.IsAny<Func<List<BeautyBoutiqueArticle>, int>>()))
.Returns(ieList)
.Verifiable();
但它不起作用。它显示如下错误:
匹配的最佳重载方法具有一些非法参数,和/或参数 1:无法从 'System.Collections.Generic.List' 转换为 'System.Collections.Generic.IEnumerable>'