Rhino让我模仿基于类型的泛型方法吗?

时间:2016-05-12 11:33:38

标签: c# .net unit-testing mocking rhino-mocks

string DoStuff(int input)的不同值模拟input之类的方法很容易,所有未列出的值都有默认值。

但针对不同类型string DoStuff<T>()的方法T呢?

这是可能的,如果是这样的话?

1 个答案:

答案 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));

}