我有一个带有如下方法的接口:
public interface IRepo
{
IA<T> Reserve<T>();
}
我想模拟包含此方法的类,而不必为它可以用于的每种类型指定设置方法.理想情况下,我只希望它返回new mock<T>.Object
分.
我如何做到这一点?
我的解释似乎不清楚.下面是一个例子——现在,当我指定T(这里是字符串)时,这是可能的:
[TestMethod]
public void ExampleTest()
{
var mock = new Mock<IRepo>();
mock.Setup(pa => pa.Reserve<string>()).Returns(new Mock<IA<string>>().Object);
}
我想要实现的是这样的:
[TestMethod]
public void ExampleTest()
{
var mock = new Mock<IRepo>();
mock.Setup(pa => pa.Reserve<T>()).Returns(new Mock<IA<T>>().Object);
// of course T doesn't exist here. But I would like to specify all types
// without having to repeat the .Setup(...) line for each of them.
}
测试对象的某些方法可能会为三个或四个不同类型调用保留.如果我必须设置所有类型,我必须 for each 测试编写大量设置代码.但是在一个测试中,我并不关心所有这些对象,我只需要非空的模拟对象,除了我实际测试的那个对象(我很乐意为它编写一个更复杂的设置).