【问题标题】:Does Rhino let me mock a generic method based on type?Rhino 是否让我模拟基于类型的泛型方法?
【发布时间】:2016-05-12 11:33:38
【问题描述】:

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

但是对于不同类型的T,像string DoStuff<T>() 这样的方法呢?

这可能吗,如果可以,怎么办?

【问题讨论】:

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


    【解决方案1】:

    是的,您可以为泛型方法设置行为,例如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));
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 2020-03-14
      相关资源
      最近更新 更多