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

时间:2009-01-22 01:44:15

标签: .net unit-testing vb6 tdd richedit

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

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

一些基本的谷歌搜索发送给我这个工具调用simplyVBunit,但我找不到足够的指南等让我开始,是的,我不熟悉VB6 :(

  1. 所以有人知道任何好事 我使用TDD的工具/资源 这个VB6应用程序? [稍后可以升级到.NET以防万一。]
  2. 或者我可以使用那些单位 .NET的测试框架,即NUnit, 等通过解决方法?
  3. 或者更令人敬畏 这样做的方法是什么?
  4. 谢谢:)

    编辑:

    我已经尝试过使用vbunit,但我发现没有简单的方法可以将它添加到现有的应用程序中,或者至少不知道如何。因此,我也发现了这一点,vb-lite-unit以及此comunit。还有一些人说我们可以使用NUnit with vb6但是资源就更少了。

3 个答案:

答案 0 :(得分:10)

使用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,只需简单地在我的电脑上乱砍。

[ADDED EDIT]

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

project explorer

Form1是simplevbunit控件所在的位置。

此项目的source code

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

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

答案 1 :(得分:6)

VBUnit在VB6项目的前客户身上为我工作得很好。

答案 2 :(得分:6)

我遇到的情况是我们有一个巨大的VB6应用程序正在迁移到.NET。迁移版本已经过完全单元测试。

我们采用的方法是通过COM互操作从.NET对VB6应用程序进行单元测试。到目前为止我们发现的主要优点是VB6开发人员最终学习TDD(以及它所暗示的所有内容):

  • 方法:先测试,然后再编码..
  • 架构:SoC,凝聚力,干,......
  • 技术:测试和模拟框架,IoC容器......

此解决方案极大地提高了迁移版本的代码质量,因为他们了解如何以一种使测试更容易的方式构建事物。此外,还有可能在VB6和.NET版本上使用相同的测试。

不确定此解决方案是否针对您的问题进行过度架构。您应该评估是否适用于您的情况。

问候。