VB6 有什么好的 TDD 工具或资源吗?

2024-03-19

是的,我知道我已经落后于时代了,但是我这里有一个古老的 VB6 编辑器应用程序,我相信没有人会很快升级到 .NET。它使用了几个第三方 DLL 工具,并且由于它仍然使用旧的 RichEdit 控件,我基本上可以仅用这个工具来创建我自己的 Bug 农场。

所以够了,我想看看我是否可以使用 TDD,这样我就可以开始为我需要修复的每个行为/功能编写单元测试,所以迟早我可以为这个工具拥有一个完整的回归测试套件。即使将来我们确实升级到 .NET,我认为我编写的大多数测试都应该有助于验证正确的行为,并且我猜也应该可以升级到 .NET 版本。

一些基本的谷歌搜索将我发送到这个工具调用简单的VB单元 http://simplyvbunit.sourceforge.net/,但我找不到足够的指南等来帮助我入门,是的,我也不太精通 VB6 :(

  1. 那么有谁知道有什么好的 我使用 TDD 的工具/资源 对于这个 VB6 应用程序? [最好稍后升级到.NET,以防万一。]
  2. 或者我实际上可以使用这些单位 .NET 的测试框架,即 NUnit, 等等通过解决方法?
  3. 或者还有更厉害的 如何完成这件事?

谢谢 :)

EDIT:

我尝试过使用 vbunit,但我发现没有简单的方法可以将其添加到现有的应用程序中,或者至少我不知道如何添加。因此我也发现这个可以玩,VB Lite 单元 http://sourceforge.net/projects/vb-lite-unit还有这个comunit http://comunit.sourceforge.net/?page=download.html。另外还有一些说法我们可以使用NUnit 与 vb6 http://integralpath.blogs.com/thinkingoutloud/2004/12/nunit_with_vb6.html但这方面的资源更少。


我使用 SimplyVBUnit 获得了非常流畅的 TDD 体验。我认为代码附带的示例非常不言自明。

您在启动时最初加载的表单包含该控件。然后在 Form_Load 子中:

 AddTest New TestDifferentAsserts

TestDifferentAsserts 是一个 vb 类。 它看起来像这样:

Public Sub TestFloatCompareTolerance()
   ' we will use the default tolerance of 0.00001
   Assert.AreEqual 9#, 9.000001, "Should be equal!"

   ' The Expected value must be a Double or Single
   ' for the tolerance to be used in the comparison.
   Assert.AreEqual 9, 9.000001, "This will fail because we didn't use a float for the expected value."
End Sub

事实上,明天我将在我的计算机上重新加载 vb6,以便使用 simplevbunit 在我的计算机上进行破解。

[添加编辑]

这是我的 VB6 项目资源管理器:

Form1 是 simplevbunit 控件所在的位置。

The 源代码 http://www.box.net/shared/ycfp3jpea7对于这个项目。

如果你有第三方控制,谁在乎呢。用门面包裹它们。然后从立面创建一个存根。

如果您需要进一步的帮助,请发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB6 有什么好的 TDD 工具或资源吗? 的相关文章

  • 无法解析类型“Microsoft.AspNetCore.Identity.RoleManager”的服务

    我编写代码以在我的 asp net core 项目中向用户添加角色 这是我的角色控制器 public class RolesController Controller RoleManager
  • 合并多个列表

    鉴于我有一个列表列表 List
  • OCMock - 尽管是预期的,但仍调用了意外的方法

    这是经过测试的代码 if MFMailComposeViewController canSendMail MFMailComposeViewController mailComposeController MFMailComposeView
  • 将对象列表打印到控制台

    我创建了一个带有 Listobj 对象类型的列表 并向对象添加了一组值 如何以年龄增长的方式从 newlist 中打印 Listobj 对象 class Listobj int age string name public int Age
  • VT_DATE 类型的微秒支持

    VT DATE 变体类型是否支持微秒分辨率 请告诉我如何在VB中显示相同的内容 http msdn microsoft com en us library ms221646 aspx http msdn microsoft com en u
  • 获取已安装的 Windows 应用商店应用程序列表

    有多种方法可以获取控制面板中 添加 删除程序 中已安装应用程序的列表 但我也想从 Windows 应用商店获取已安装应用程序的列表 到目前为止我还没有得到任何东西 有什么方法可以获取从 Windows 应用商店安装的应用程序列表吗 您可以在
  • WinDbg中出现“SOS版本与您正在调试的CLR版本不匹配”怎么办?

    我的某些应用程序出现问题 它是一个基于 wcf 的应用程序 在 Windows 2003 Server x86 的 IIS6 下运行 在事件日志中 我从 W3SVC WP 源 EventID 2262 收到这样的错误 ISAPI C WIN
  • Visual Studio 2013 未发现单元测试

    我在 Visual Studio 2013 中有一个简单的解决方案 它由一个 Web 项目 一个库项目和一个单元测试项目组成 当我打开解决方案并尝试运行单元测试时 Visual Studio 不会发现它们 要运行测试 我尝试转到菜单并选择
  • Linq:Select 和Where 之间有什么区别

    The Select and WhereLinq 中提供了方法 对于这两种方法 每个开发人员都应该了解什么 例如 何时使用其中一种而不是另一种 使用一种相对于另一种的优势等 Where 查找匹配的项目并仅返回匹配的项目 过滤 gt IEnu
  • 使用 JSON.NET 反序列化一些 JSON

    我对 JSON 非常陌生 我需要解析 API 提供的一些内容 谷歌快速搜索出现了JSON NET http james newtonking com pages json net aspx 所以我现在尝试使用它将此 JSON 解析为列表对象
  • 新的 Windows 应用程序 - 什么语言?

    我们目前正处于开发 Windows 桌面应用程序的前期阶段 但当听到有关 Windows 8 Silverlight WPF Jupiter 的所有最新讨论时 我不知道该相信什么了 现在用WPF启动一个新项目是不是有问题 我应该切换到 Si
  • 测试驱动开发 - 我应该测试数据库列和索引吗?

    我是 TDD 新手 我发现shouldagem 能够测试数据库实体的列是否存在以及测试其索引 但是否有必要在我的测试套件中包含列和索引的测试 我是否需要担心在开发过程中可能会删除任何列和索引 不要测试数据库列 这只是测试实施 不要测试实现
  • 通过鼻子测试检查某个函数是否发出警告

    我正在使用编写单元测试nose http somethingaboutorange com mrl projects nose 0 11 2 我想检查函数是否引发警告 该函数使用warnings warn 这是很容易就能做到的事情吗 def
  • .net MVC 将 MP4 流式传输到 iDevice 问题

    我一直在编写用于提供视频服务的一段代码 但遇到了一些问题 代码如下 public ResumingFileStreamResult GetMP4Video string videoID if User Identity IsAuthenti
  • C# 创建函数队列

    我写了一个名为 QueueManager 的类 class QueueManager Queue functionsQueue public bool IsEmpty get if functionsQueue Count 0 return
  • 无法加载文件或程序集“EntityFramework,版本=6.0.0.0”

    我究竟做错了什么 我该如何解决这个问题 我有一个包含多个项目的解决方案 它是一个 MVC NET 4 5 Web 应用程序 在调试模式下启动后调用其中一个项目时 出现此错误 导致此错误的项目具有以下参考 两个都是版本6 0 0 0 应用程序
  • 日期时间的自定义 JavaScriptConverter?

    我有一个对象 它有一个 DateTime 属性 我想通过 AJAX JSON 将该对象从 ashx 处理程序传递回网页 我不想使用第 3 方控件 当我这样做时 new JavaScriptSerializer Serialize DateT
  • 如何访问窗口?

    我正在尝试使用其句柄访问特定窗口 即System IntPtr value Getting the process of Visual Studio program var process Process GetProcessesByNam
  • System.IO.Compression 和 ZipFile - 提取并覆盖

    我使用标准 VB NET 库来提取和压缩文件 它也可以工作 但是当我必须提取并且文件已经存在时 问题就出现了 我使用的代码 Imports Imports System IO Compression 崩溃时我调用的方法 ZipFile Ex
  • 使用 System.Security.Cryptography 将 Win32 Crypto API 调用转换为 C#

    我接到一项任务 要删除我们产品的一个 dll 并将其替换为纯 C 的 dll 旧的 DLL 是 NET 2 0 托管 C C CLI 它包装了对 Win32 本机加密 API 的调用 新的 DLL 应公开具有相同名称和方法的新对象 但应使用

随机推荐