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