【问题标题】:How to unit test a WPF application which uses XamlIslands?如何对使用 XamlIslands 的 WPF 应用程序进行单元测试?
【发布时间】:2021-05-27 23:41:04
【问题描述】:

我正在开发一个WPF 应用程序,我正在使用Xaml Islands 来显示win10 UI 组件。为此,我需要创建一个 UWP 项目,我可以在其中实现这些组件。

我想为 WPF 项目中的业务逻辑编写单元测试。我无法创建Unit Test App (Universal Windows),因为无法将 WPF 应用程序添加为此项目的引用。所以我尝试创建一个针对 .NET Core 的测试项目(尝试过 MSTest ProjectxUnit Test Project),但是当我添加到我的 WPF 应用程序的引用时,它显示以下错误:

Project <UWP...> is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project <UWP...> supports: uap10.0.18362 (UAP,Version=v10.0.18362)

这是因为 WPF 应用引用了 UWP 应用来显示 win10 组件。

那么,有什么想法,我如何将单元测试项目添加到我的解决方案中?

【问题讨论】:

  • 如何将您的业务逻辑移至针对 .NET Standard 的专用程序集?

标签: c# wpf unit-testing uwp xaml-islands


【解决方案1】:

那么,有什么想法,我如何将单元测试项目添加到我的解决方案中?

有一种称为Model-View-ViewModel (MVVM) 的设计模式推荐用于开发基于 XAML 的 UI 应用程序的设计模式。如果您对使用 XAML 在 Windows 上开发 UI 应用程序很认真,那么您真的应该学习它。

采用它的主要好处之一,除了它带来的关注点分离之外,就是可测试性。这个想法是,您可以在视图模型中编写应用程序逻辑,这样可以轻松地与应用程序的其余部分隔离开来进行单元测试。

使用这种方法,可以在对 WPF 或 UWP 程序集几乎没有依赖的类库中实现您的视图模型类,然后像往常一样简单地从您的测试项目中添加对该类库的引用。

【讨论】:

  • 感谢您的提示。我已经在使用 MVVM 模式,但是将业务逻辑移到另一个项目中需要付出巨大的努力和工作
  • @AttilaSzász:不应该是真的。另请注意,业务逻辑属于 MVVM 中的模型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 2012-03-21
  • 2011-03-25
  • 1970-01-01
相关资源
最近更新 更多