是的,我知道我落后于时代,但我在这里得到的是一个古老的VB6编辑器应用程序,我相信没有人会很快升级到.NET。它使用了几个第三方DLL工具,因为它仍然使用旧的RichEdit控件,我基本上可以仅用这个工具来提升我自己的Bug场。
这足够了,我正在试图看看我是否可以使用TDD,所以我可以开始为每个需要修复的行为/功能编写单元测试,所以迟早我可以拥有一个完整的回归测试套件这个工具。即使将来如果我们升级到.NET,我认为我编写的大多数测试都应该有助于验证正确的行为,并且应该可以升级到.NET版本,我想。
一些基本的谷歌搜索发送给我这个工具调用simplyVBunit,但我找不到足够的指南等让我开始,是的,我不熟悉VB6 :(
谢谢:)
我已经尝试过使用vbunit,但我发现没有简单的方法可以将它添加到现有的应用程序中,或者至少不知道如何。因此,我也发现了这一点,vb-lite-unit以及此comunit。还有一些人说我们可以使用NUnit with vb6但是资源就更少了。
答案 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中的项目资源管理器:
Form1是simplevbunit控件所在的位置。
此项目的source code。
如果您有第三方控件,谁在乎。用立面包裹它们。然后从立面创建一个存根。
如果您需要进一步的帮助,请发表评论。
答案 1 :(得分:6)
VBUnit在VB6项目的前客户身上为我工作得很好。
答案 2 :(得分:6)
我遇到的情况是我们有一个巨大的VB6应用程序正在迁移到.NET。迁移版本已经过完全单元测试。
我们采用的方法是通过COM互操作从.NET对VB6应用程序进行单元测试。到目前为止我们发现的主要优点是VB6开发人员最终学习TDD(以及它所暗示的所有内容):
此解决方案极大地提高了迁移版本的代码质量,因为他们了解如何以一种使测试更容易的方式构建事物。此外,还有可能在VB6和.NET版本上使用相同的测试。
不确定此解决方案是否针对您的问题进行过度架构。您应该评估是否适用于您的情况。
问候。