VB.net NUnit (2.5) Windows 窗体测试 - 这可能吗

标签 vb.net winforms unit-testing testing nunit

我正在将单元测试 retrofit 到由其他开发人员在 VB.net 中设计和编写的相当复杂的系统中。我正在尝试使用 NUnit 和 NUnit Forms 扩展为 GUI 表单开发单元测试。 (我一直在查看 C# 示例,如果您有解决方案但不了解 VB 语法,只要它使用 NUnit 类,这些示例很容易移植)

我将尝试解释我在做什么,但首先是对该程序的简要描述。它基本上监视服务器事件。您需要通过具有 IP 和端口字段(以及其他字段)的模态形式连接到服务器。连接到服务器后,程序的其他部分将解锁并可用(例如服务器配置)。

期望的过程:加载程序>点击连接按钮>模态连接表单加载>输入详细信息>点击确定连接>主表单更新为登录状态>其他功能

问题是我无法测试连接表单的功能以及程序的登录功能。我可以测试它是否正确加载模态连接表单;输入详细信息并单击“确定”(到目前为止一切正常)但它似乎没有按逻辑推进程序。模态表单似乎再次关闭,似乎没有从程序后端运行连接代码,我回到了主菜单,没有登录任何内容。

我有一种感觉,我要么错过了一些非常明显的东西,要么在 NUnit 中根本无法实现。我在互联网上搜索过任何类似的东西,但最接近的是另一个真正通用的 SO 线程。由于无法实际测试程序的登录版本,我遇到了一个主要障碍。 另一个问题是处理没有唯一标识符的消息框(例如“你确定要退出吗?”);这些似乎也是 NUnit 的一大痛点

(如果有什么不同的话,我将测试作为一个独立的项目运行,使用对构建项目的可执行文件的引用,而不是实际的源代码)

如果需要,可以发布我的一些测试代码。

最佳答案

恕我直言,使 GUI 类对单元测试可行的最佳方法是应用 Model-View-Presenter pattern并将几乎每个程序逻辑从表单 (=View) 类分解为单独的 Presenter 类。然后你可以对 Presenter 类进行单元测试,而不需要像“NUnit Forms”这样的工具。

阅读Michael Feathers' article "The Humble Dialog Box"对于 C++ 中的示例,我想您可以轻松地将其应用于 Winforms。

关于VB.net NUnit (2.5) Windows 窗体测试 - 这可能吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7809094/

相关文章:

c# - 起订量返回设置在第二次执行时返回错误数据

vb.net - Excel Interop 中的联合范围

.net - 检查有效的 IMEI

android - 使用 ksoap2 将对象从 android 传递到 wcf soap 服务;它发送和接收 0

c# - 从派生表单访问基本表单的控件时有什么更好的主意

c# - 防止表格卡住

c# - 无法从线程启动 winForm

java - 空指针异常取决于 Mockito 中的语句链接?

c# - checkin 前运行单元测试

vb.net - 中断/退出嵌套在 vb.net 中