我的控制器中有以下代码行,需要将其设置为单元测试。
var result = data.ToList().Select(x=> this.mapper.Map<A_Class, B_Class> (x)).ToList();
我做的事情如下
this.mapperMock.Setup(x => x.Map<A_Class, B_Class>(AAA)).Returns(expectedResult);
任何人都可以建议什么应该是AAA,什么应该是expectResult?在我的控制器中,我的linq工作在Data中的A_Class的foreach对象。如何在UnitTest中设置
答案 0 :(得分:1)
如果您想要返回假的expectedResult
,无论A_Class
的值是多少都是
mapperMock.Setup(x => x.Map<A_Class, B_Class>(It.IsAny<A_Class>))
.Returns(expectedResult);
如果您想更具体,例如只需为映射expectedResult
返回A_Class
,其属性值为&#39; foo&#39;:
mapperMock.Setup(
x => x.Map<A_Class, B_Class>(It.Is<A_Class>(_ => a.Property == "foo")))
.Returns(expectedResult);
请注意,如果没有设置匹配,Moq将返回默认值,对于引用类型,该值将为null
。