用不同的T

  • 本文关键字: rhino-mocks-3.5
  • 更新时间 :
  • 英文 :


我有一个带有泛型方法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);

在上面的代码中,在第二个存根上,我得到错误"Object reference not set to a instance of a Object"。

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

相关内容

  • 没有找到相关文章

最新更新