嘲笑帮助?我找不到问题所在

时间:2010-02-14 16:37:44

标签: mocking nmock

我的界面定义如下:

public interface IDatabase{ void Get<TTypeToFetch> ();}

当我尝试做的时候: Mockery mockery = new Mockery(); IDatabase db = mockery.NewMock<IDatabase>(); 我收到以下错误:

  

System.TypeLoadException:System.TypeLoadException:方法实现中正文和声明的签名不匹配

有什么问题? (我正在使用带有nmock2的Visual Studio 2008) 请大家给我一个答案,我必须尽快完成。 谢谢, 路易莎

2 个答案:

答案 0 :(得分:0)

我认为这可能是NMock的一个问题,甚至可能是一个bug。类型IDatabase不是通用的,因此当您调用Get<T>时,可以在运行时使用不同的T。但是当NMock生成模拟时,它似乎并不理解这种情况,并且kablammo - 每个方法签名都不同,具体取决于提供的类型参数。

尝试这样做:

public interface IDatabase<T> {
  void Get<T>();
}

此外,Get的类型不应该是T,而不是void

答案 1 :(得分:0)

我在自己的界面上遇到了同样的异常。当我将界面更改为公开时​​,一切运行正常。