代码之家  ›  专栏  ›  技术社区  ›  Icode4food

MS-Access中的单元测试

  •  14
  • Icode4food  · 技术社区  · 16 年前

    我在谷歌上搜索了一下,但没有找到令我满意的东西。有没有一个msvba的单元测试框架?

    4 回复  |  直到 16 年前
        1
  •  4
  •   HansUp    16 年前

    VBAUnit 在SourceForge上免费。还有,广告 vbUnit 3 可以支持VBA以及普通VB。。。不过,我不确定。

        2
  •  10
  •   AdamsTips    11 年前

    我在microsoftaccess中做了一些相当广泛的开发,发现 AccUnit 很好地满足我的需要。作者的站点是德语的(但是包括一些英语翻译),但是一旦你得到了基本的概念,单元测试就很容易实现了。

    阿库尼特 SimplyVBUnit

    安装过程是 described on the author's site 但基本上包括以下两项:

    • 安装 SimplyVBUnit 3.0版
    • 安装 阿库尼特 从上面的链接下载的加载项。

    基本用法

    安装后,您将在 Tools 菜单。点击 AccUnit New Test -&燃气轮机; Test Class with AccUnit-Features

    Add new unit test

    您可以为模块命名任何您想要的名称,因此这将稍微取决于您想要如何进行测试。有些人喜欢为每个模块设置一个测试类,以使事情井然有序,而另一些人则通过使用单个类进行单元测试,在较小的项目中使事情变得简单。

    Unit test class

    简单的例子

    Public Function GetLowestNumber(FirstNum As Double, SecondNum As Double) As Double
    If FirstNum < SecondNum Then
        GetLowestNumber = FirstNum
    Else
        GetLowestNumber = SecondNum
    End If
    End Function
    

    回到acunit test类,我们现在可以做一个简单的测试来验证这个函数是否返回最小的值。

    Public Sub basUtility_GetLowestNumber_Test1()
        Assert.That GetLowestNumber(3, 4), Iz.EqualTo(3)
    End Sub
    

    现在,在AccUnit工具栏上,单击按钮 Run all tests . 测试窗口将出现并显示测试结果。(如果您在上面的代码中复制,它应该通过。):-)

    enter image description here

    设计行测试

    但是使这个工具非常强大的是使用各种标准组合运行测试的能力。事实上,他们称之为 行测试 . 要使用它,只需调整函数以接受参数,并在函数上方的注释行中列出测试用例。

    ' AccUnit:Row(3,4,3).Name = "Smaller first"
    ' AccUnit:Row(4,3,3).Name = "Larger first"
    ' AccUnit:Row(3,3,3).Name = "Equal"
    ' AccUnit:Row(3.002,3.6,3.003).Name = "Decimals"
    ' AccUnit:Row(-3,3,-3).Name = "Mixed sign"
    ' AccUnit:Row(-7,-3,-7).Name = "Negative"
    Public Sub basUtility_GetLowestNumber_RowTest(Num1 As Double, Num2 As Double, Expected As Double)
        Assert.That GetLowestNumber(Num1, Num2), Iz.EqualTo(Expected)
    End Sub
    

    现在单击 再次,您将看到列出的结果。

    Row test example

    请注意,单个行测试的结果嵌套在父测试下,并且显示了我们为它们提供的友好名称,以便于参考。

    摘要

    我刚刚在这里分享了几个简单的例子,但是在AccUnit中还有一些附加的工具和特性需要研究。(测试标签、忽略标志、代码模板等)

    希望这能让您对microsoftaccess(或其他VBA产品)的这个特定单元测试选项有一点了解。还有其他好的选择,但对我来说,这提供了灵活性和简单性,我一直在寻找。

        3
  •  1
  •   Kevin Ross    16 年前

    我个人认为与优秀的访问FE自动更新的组合

    http://autofeupdater.com/

    • UAT的土地选择少数用户 测试更改并批准

    我看到的两个项目之间的关键区别是执行UAT的人员的能力。我有一个主要的版本是从一个访问后端迁移到SQL server,我发邮件说,该版本是在UAT测试准备,并得到一个回来30分钟后说,它已经全部测试(不可能)低,看有一个非常常见的地区有一个错误。

    总之,设置好你的舞台环境,挑选好你的测试人员!

        4
  •  0
  •   Beth    16 年前