我有一个我想模仿的方法:
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>>));
然而,当我尝试这个时,我得到了这个编译错误:
错误65
方法'ServiceBus.IServiceBus.Subscribe(Messaging.ISubscribeTo)'的类型参数 无法从使用中推断出来 尝试指定类型参数 明确。
我不确定如何解决此错误。有任何想法吗?或者这种行为不可能用Moq模拟?
答案 0 :(得分:6)
试试这个(添加括号,因为It.IsAny<TValue>
是一种方法):
mockServiceBus.Setup(x => x.Subscribe(It.IsAny<ISubscribeTo<SomeType>>()));