如何在Moq中设置一个通用的返回类型?
我有如下界面:
public interface IFoo
{
T Bar<T>();
}
现在我想设置Bar<T>()
在测试中工作
var foo = new Mock<IFoo>();
foo.Setup(x => x.Bar<It.IsAnyType>()).Returns(new Mock<???>().Object);
我如何填写???
,或者如果这是不可能的,那么我如何返回一个通用的mock?
有100种类型,我尽量避免模仿它们,如果调用对任何类型返回null,测试就会中断(因为代码抛出异常),这是默认的非模仿行为。
2条答案
按热度按时间2eafrhcq1#
如果
T
是引用类型,即那么创建一个小的模拟会更容易
可在安排测试时初始化,使用MOQ模拟
Bar
的输出bxjv4tth2#
尝试使用此
Returns
重载:IReturnsResult<TMock> Returns(InvocationFunc valueFunction);
设置:
电话: