我有一个正尝试从单元测试中调用的方法。在现实生活中,此方法将从后台线程运行。它使用一些代码来启动对UI线程的调用更新(使用Application.Current.Dispatcher.BeginInvoke ...)。
但是,当从单元测试中调用Application.Current时,它是null。
我真的不知道在所有需要修复的东西周围放一个if (Application.Current !=null)是什么。
有没有别的办法来解决这个问题呢?
_statusUpdates是一个ObservableCollection
下面是我要测试的方法中的代码部分(公平地说,它更像是一个集成测试,而不是一个单元测试)。
Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (EventHandler)delegate
{
_statusUpdates.Add(new StatusUpdate
{
DateTime = DateTime.Now,
Message = "Checking For Messages"
});
}, null, null);发布于 2013-02-13 01:17:02
在单元测试运行器中不会有Application对象。这些通常是基于“控制台”的应用程序,它们只是运行和执行非UI代码(“单元”)。
我建议您不要使用单元测试框架来测试特定于UI的信息,我建议使用自动化的UI测试框架来实现这一点。
https://stackoverflow.com/questions/14837784
复制相似问题