【问题标题】:WPF - XamlParseException when unit testing method in Window classWPF - Window类中的单元测试方法时出现XamlParseException
【发布时间】:2010-09-30 19:00:30
【问题描述】:

我正在尝试使用 MSTest 为我的 WPF 应用程序中的 MainWindow 类中的方法编写单元测试。但是,我得到以下异常:

System.Windows.Markup.XamlParseException: '在 'System.Windows.StaticResourceExtension' 上提供值引发异常。'行号“127”和行位置“32”。 ---> System.Exception:找不到名为“verticalLineStyle”的资源。资源名称区分大小写。

verticalLineStyle 位于 ResourceDictionary 中,该 App.xaml 中包含。我不需要这种风格来测试我正在尝试测试的方法,但我无法超越这一点。我只是在我的单元测试中创建MainWindow 的一个新实例,并尝试在其上调用一个实例方法。当我尝试创建MainWindow 的实例时发生异常。 MainWindow 定义为public partial class MainWindow : Window

如何消除此错误?在 WPF 应用程序的 windows 中是否有一些首选的单元测试方法?

【问题讨论】:

    标签: c# wpf unit-testing mstest xamlparseexception


    【解决方案1】:
    Application.LoadComponent(
        new Uri("/MyAppAssemblyName;component/App.xaml", UriKind.Relative));
    

    这对我有帮助。

    【讨论】:

    • 在适用于 Win 10 的 UWP 应用程序中,此重载不存在。任何人都知道 a) 作为第一个参数传递什么以及 b) UWP 的 App.xaml 的 URI 是什么?
    • 程序集名称可以在项目的属性中找到,“组件/”部分字面意思“组件”。
    【解决方案2】:

    问题是测试无权访问 App.xaml,因为应用程序未启动。您可能想查看 TestApi 以了解与测试 WPF 视觉效果相关的任何内容 (link)

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多