我们正在从Prism 4.1迁移到5.突然出现的一个项目是我们为单元测试创建一个Stub EventAggregator(Microsoft Fakes)。 EventAggregator在目标类中设置,一些订阅者使用
进行设置_eventAggregator.GetEvent<RangeChangedEvent>().Subscribe(UpdateDisplay,
ThreadOption.UIThread,
false,
args => args.ID == ID);
单元测试与Prism 4.1一起工作正常。但是,现在我在运行单元测试时在Prism 5中得到了这个例外。
System.InvalidOperationException:要使用UIThread选项进行订阅,必须在UI线程上构造EventAggregator ..
那么,有没有办法获得Prism认为UI线程的参考?或者告诉prism单元测试线程是UI线程的一种方法?或者我是否需要订阅发布线程并在“UpdateDisplay”方法中测试Dispatcher?
感谢。
答案 0 :(得分:0)
如果您正在使用Nunit,您可以使用RequiresSTA属性修饰您的测试夹具类,这将使testrunner使用UI线程,并希望它应该为您解决问题。