WPF - XamlParseException when unit testing method in Window class

谁说我不能喝 提交于 2019-12-07 21:01:43

问题


I'm trying to use MSTest to write unit tests for methods in my MainWindow class in my WPF application. However, I get the following exception:

System.Windows.Markup.XamlParseException: 'Provide value on 'System.Windows.StaticResourceExtension' threw an exception.' Line number '127' and line position '32'. ---> System.Exception: Cannot find resource named 'verticalLineStyle'. Resource names are case sensitive.

verticalLineStyle is found in a ResourceDictionary that is included in App.xaml. I have no need of this style to test the method I'm trying to test, but I can't get past this. I'm just creating a new instance of MainWindow in my unit test and trying to call an instance method on that. The exception occurs when I try to create the instance of MainWindow. MainWindow is defined as public partial class MainWindow : Window.

How do I get rid of this error? Is there some preferred way of unit testing methods in windows in WPF applications?


回答1:


Application.LoadComponent(
    new Uri("/MyAppAssemblyName;component/App.xaml", UriKind.Relative));

This helped me.




回答2:


The problem is that the test does not have access to App.xaml as the application is not started. You might want to look into TestApi for anything related to testing WPF visuals (link)

Hope this helps!



来源:https://stackoverflow.com/questions/3833912/wpf-xamlparseexception-when-unit-testing-method-in-window-class

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!