无法使用实现泛型的消息测试NServicebus消息处理程序

时间:2010-11-02 03:45:52

标签: c# unit-testing generics reflection nservicebus

我正在使用:

  • nservicebus 2.0.0.0
  • nservicebus.Testing 2.0.0.0
  • VS2010
  • NUnit的
  • .NET 4.0
  • C#

我正在使用nservicebus.Testing命名空间,nservicebus为测试IMessage处理程序提供了这个命名空间。

我的测试在调用IMessage处理程序时抛出此错误:

  

System.InvalidOperationException:   后期绑定操作不能   对类型或方法执行   哪个ContainsGenericParameters是   真。

如果我将测试项目中的引用删除到包含实现泛型的IMessages的程序集,则此错误消失并且测试运行正常。

注意我正在测试的处理程序没有处理泛型消息,只是在bin文件夹中存在泛型消息导致错误。

我希望能够测试实现泛型的IMessage的处理程序,这可能吗?

欢呼声

1 个答案:

答案 0 :(得分:1)

问题在于NServiceBus测试库通常使用与NServiceBus相同的汇编类型扫描逻辑。为了防止扫描有问题的程序集,请调用Test.Initialize(params Assembly []程序集);

尽管如此,建议不要使用使用泛型的消息。