为string DoStuff(int input)
的不同值模拟input
之类的方法很容易,所有未列出的值都有默认值。
但针对不同类型string DoStuff<T>()
的方法T
呢?
这是可能的,如果是这样的话?
答案 0 :(得分:2)
是的,您可以为string DoStuff<T>()
:
public class IFoo
{
public string DoSomthing<T>();
public string DoSomthing<T>(T t);
}
[TestMethod]
public void TestMethod1()
{
var fakeObj = MockRepository.GenerateStub<IFoo>();
fakeObj.Stub(x => x.DoStuff<int>()).Return("1");
fakeObj.Stub(x => x.DoStuff<long>()).Return("10");
fakeObj.Stub(x => x.DoStuff<string>()).Return("XD");
fakeObj.Stub(x => x.DoStuff(3)).Return("2");
Assert.AreEqual("1", fakeObj.DoStuff<int>());
Assert.AreEqual("XD", fakeObj.DoStuff<string>());
Assert.AreEqual("10", fakeObj.DoStuff<long>());
Assert.AreEqual("2", fakeObj.DoStuff(3));
}