我们正在从Prism 4.1转移到5。出现的一个项目是为我们的单元测试创建一个Stub EventAggregator (微软伪造的)。在目标类中设置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线程呢?还是告诉棱镜单元测试线程是UI线程的一种方法?还是需要在发布线程上订阅并在"UpdateDisplay“方法中测试Dispatcher?
谢谢。
发布于 2015-04-14 17:14:05
如果您正在使用Nunit,您可以使用RequiresSTA属性来修饰您的测试夹具类,这将使testrunner使用UI线程,希望它能够为您解决问题。
https://stackoverflow.com/questions/26770772
复制相似问题