【问题标题】:Stubbing a generic method with different T使用不同的 T 存根通用方法
【发布时间】:2012-09-04 12:19:04
【问题描述】:

我有一个带有通用方法GetService 的服务工厂。根据我传递给T 的内容,它为我提供了针对该特定课程的服务。

现在我有一个方法,它使用多个这些服务,我需要对所有这些服务进行存根。 Ex: GetService<Coffee> , GetService<Tea>

mockrepo.Stub(x => x.GetService<Coffee>().Expect(c => c.RetrieveList(coffeeCollection)).IgnoreArguments());
mockrepo.Stub(x => x.GetService<Tea>().Retrieve(1)).Return(testrefDataRefEle1);

在上面的代码中,在第二个存根上出现错误“对象引用未设置为对象的实例”。

【问题讨论】:

    标签: rhino-mocks-3.5


    【解决方案1】:

    你不能在 Rhino.Mocks 中做这样的递归模拟。您必须为具有Retrieve 方法的任何对象创建一个存根,并将其设置为返回testrefDataRefEle1。然后设置GetService&lt;Tea&gt; 的存根返回另一个模拟对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-11
      • 2013-01-28
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多