代码之家  ›  专栏  ›  技术社区  ›  Rob

尝试用Moq模拟泛型方法时出现编译错误

  •  1
  • Rob  · 技术社区  · 14 年前

    public interface IServiceBus
    {
        void Subscribe<T>(ISubscribeTo<T> subscriber) where T : class;
    }
    

    为了这个例子, T SomeType . 现在,我想嘲笑一下,就像这样:

    var mockServiceBus = new Mock<IServiceBus>();
    mockServiceBus.Setup(x => x.Subscribe(It.IsAny<ISubscribeTo<SomeType>>));
    

    但是,当我尝试此操作时,会出现以下编译错误:


    方法“”的类型参数ServiceBus.IServiceBus.Subscribe服务总线(消息.ISubscribeTo)' 无法从用法推断。
    明确地。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Jeff Ogata    14 年前

    试试这个(添加括号) It.IsAny<TValue> 是一种方法):

    mockServiceBus.Setup(x => x.Subscribe(It.IsAny<ISubscribeTo<SomeType>>()));