【问题标题】:Migrating Windows form unit tests to WPF将 Windows 窗体单元测试迁移到 WPF
【发布时间】:2013-11-05 05:30:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# .net wpf winforms unit-testing


    【解决方案1】:

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

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

    【讨论】:

    • 好像你在我打字的时候读懂了我的想法,而且你打字速度更快。 :)
    • 我在现有应用程序中使用了 MVP 模式。我认为逻辑显然是分开的。感谢 TGH 的帮助
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

    • 是的。我完全同意这种说法“好的单元测试不应该关心视图”。为此,我们需要严格分离业务逻辑代码。无法添加代码,因为它是专有的。很抱歉。
    【解决方案3】:

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

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

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

    【讨论】:

    • 继续。我已经为我现有的应用程序使用了 MVP 模式。我认为逻辑显然是分开的。
    猜你喜欢
    • 2010-10-06
    • 1970-01-01
    • 2010-09-28
    • 2016-04-17
    • 2011-02-19
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多