我在 Winforms 中有一个项目,我使用 MBUnit 进行单元测试。现在我们计划将这个项目(在 Winforms 中)迁移到 WPF。我们是否必须从头开始为 WPF 编写单元测试,还是可以重用现有的 Windows 窗体单元测试?
众所周知,WPF 是声明性的,但在内部它会转换为 c# 代码。所以我觉得它可以重复使用。如果有任何机构在这种情况下工作过,请提供帮助。
我所知道的都是“但是”和“如果”。
我在 Winforms 中有一个项目,我使用 MBUnit 进行单元测试。现在我们计划将这个项目(在 Winforms 中)迁移到 WPF。我们是否必须从头开始为 WPF 编写单元测试,还是可以重用现有的 Windows 窗体单元测试?
众所周知,WPF 是声明性的,但在内部它会转换为 c# 代码。所以我觉得它可以重复使用。如果有任何机构在这种情况下工作过,请提供帮助。
我所知道的都是“但是”和“如果”。
这实际上取决于您的 UI 代码和业务逻辑之间的分离程度。在理想情况下,您有明确的分离,这意味着您的业务逻辑将与 UI 技术和端口无关。但是,如果你的 UI 代码和业务逻辑很纠结,并对 UI 技术做出假设,那就更难了。
单独说明:WPF 是一个非常可测试的并且鼓励单元测试友好的编码模式 Model View View Model (MVVM)。如果您正在开始一个新的 WPF 项目,我强烈建议您研究 MVVM 和单元测试。
哇......似乎有很多炒作......但它充其量是 4 年前的(最多 7 ......)
话虽如此,答案将是:也许。
如果您的单元测试仅测试逻辑和方法以确保有效行为,那么您应该很好。
如果您的单元测试与 winforms 纠缠在一起并依赖它们获得结果,那么您将不会那么好。
好的单元测试不应该关心视图,而应该测试应用程序的逻辑/模型。MVVM 对这种方法非常友好。
没有代码或示例,很难回答您的问题。
我以前在 WinForms 应用程序中使用过 MVP(模型视图演示器)模式,因为我想对演示逻辑进行单元测试。MVP 模式在您的控件和表示逻辑之间提供了一个抽象层。如果您的 WinForms 应用程序使用此模式或此模式的变体编写,那么您应该能够重用某些单元测试。
在对 WPF 应用程序进行单元测试时,您可能应该使用 MVVM 模式。在 MVVM 模式中,大多数表示逻辑存在于您的视图模型中。视图模型不与 UI 元素耦合,因此它们应该是可单元测试的。
我的直觉是这是一个坏主意,如果这是我,那么我会从头开始为我的 WPF 应用程序编写单元测试。