2

我在 Winforms 中有一个项目,我使用 MBUnit 进行单元测试。现在我们计划将这个项目(在 Winforms 中)迁移到 WPF。我们是否必须从头开始为 WPF 编写单元测试,还是可以重用现有的 Windows 窗体单元测试?

众所周知,WPF 是声明性的,但在内部它会转换为 c# 代码。所以我觉得它可以重复使用。如果有任何机构在这种情况下工作过,请提供帮助。

我所知道的都是“但是”和“如果”。

4

3 回答 3

3

这实际上取决于您的 UI 代码和业务逻辑之间的分离程度。在理想情况下,您有明确的分离,这意味着您的业务逻辑将与 UI 技术和端口无关。但是,如果你的 UI 代码和业务逻辑很纠结,并对 UI 技术做出假设,那就更难了。

单独说明:WPF 是一个非常可测试的并且鼓励单元测试友好的编码模式 Model View View Model (MVVM)。如果您正在开始一个新的 WPF 项目,我强烈建议您研究 MVVM 和单元测试。

于 2013-11-05T05:43:24.023 回答
3

哇......似乎有很多炒作......但它充其量是 4 年前的(最多 7 ......)

话虽如此,答案将是:也许。

如果您的单元测试仅测试逻辑和方法以确保有效行为,那么您应该很好。

如果您的单元测试与 winforms 纠缠在一起并依赖它们获得结果,那么您将不会那么好。

好的单元测试不应该关心视图,而应该测试应用程序的逻辑/模型。MVVM 对这种方法非常友好。

没有代码或示例,很难回答您的问题。

于 2013-11-05T05:45:03.950 回答
1

我以前在 WinForms 应用程序中使用过 MVP(模型视图演示器)模式,因为我想对演示逻辑进行单元测试。MVP 模式在您的控件和表示逻辑之间提供了一个抽象层。如果您的 WinForms 应用程序使用此模式或此模式的变体编写,那么您应该能够重用某些单元测试。

在对 WPF 应用程序进行单元测试时,您可能应该使用 MVVM 模式。在 MVVM 模式中,大多数表示逻辑存在于您的视图模型中。视图模型不与 UI 元素耦合,因此它们应该是可单元测试的。

我的直觉是这是一个坏主意,如果这是我,那么我会从头开始为我的 WPF 应用程序编写单元测试。

于 2013-11-05T08:58:10.823 回答