当前位置:  开发笔记 > 编程语言 > 正文

如何为使用winforms进行视图的控制器类编写单元测试?

如何解决《如何为使用winforms进行视图的控制器类编写单元测试?》经验,为你挑选了0个好方法。

有没有人能够成功地单元测试方法,必要时,它们耦合到System.Windows.Forms.Form类?

我最近一直在研究一个C#winforms应用程序,尝试用MVC结构构建它.考虑到框架并非真正考虑到这一点,这很难实现.

但是,当您将单元测试投入混合时,它会变得更加困难.我一直在确保我的控制器没有耦合到具体的视图类,因此我可以使用存根/模拟进行单元测试.但是在某处引用Form类是不可避免的,并且这些方法确实需要进行测试.

我一直在使用Moq,因为它有一些很好的类型安全功能,并允许模拟混凝土类型.但不幸的是,它不允许我"期望"调用具体类型的方法或属性,既不是虚拟的也不是抽象的.由于Form类不是以子类化为基础构建的,因此这是一个大问题.我需要能够通过"期待"ShowDialog来模拟Form类以防止创建真正的窗口.

所以我无法运行与Form的子类进行大量交互的任何单元测试,我的观点是.

那里有没有人成功测试过这种类型的代码?你是怎么做到的?

这是其他模拟框架可以解决的问题吗?其他模拟框架使用的基于字符串的方法是否会受到相同的约束?我可以编写自己的显式长手模拟类,还是缺少虚拟成员会阻止我以这种方式抑制窗口行为?

或者是否有某种方式我没有想到构建我的类,以便形式耦合的代码最终在方法和类的复杂,所以我可以逃脱而不明确单元测试它们,没有我的良心打败我为了它?

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有