WPF - 在Window类中进行单元测试方法时出现XamlParseException

3
我正在尝试使用MSTest为我的WPF应用程序中的MainWindow类中的方法编写单元测试。但是,我遇到了以下异常:
System.Windows.Markup.XamlParseException:'在'System.Windows.StaticResourceExtension'上提供值引发了异常。'行号'127'和行位置'32'。 ---> System.Exception:找不到名为'verticalLineStyle'的资源。资源名称区分大小写。
verticalLineStyle在包含在App.xaml中的ResourceDictionary中找到。我不需要此样式来测试我要测试的方法,但我无法通过此操作。我只是在我的单元测试中创建了MainWindow的新实例并尝试调用其中的一个实例方法。当我尝试创建MainWindow的实例时,就会出现异常。MainWindow定义为public partial class MainWindow : Window。
如何摆脱这个错误?有没有一些首选的方法来测试WPF应用程序中窗口中的方法?
2个回答

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

这对我有帮助。


在Win 10的UWP应用程序中,不存在这种重载。有人知道a)第一个参数应该传什么,b)UWP的App.xaml的URI是什么吗? - Nilzor
程序集名称可以在项目属性中找到,“component/”部分实际上是“component”。 - Pac0

0
问题在于测试无法访问App.xaml,因为应用程序尚未启动。您可能希望查看TestApi以获取与测试WPF可视化内容相关的任何信息(link)。
希望这可以帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接