Nunit 的简单应用

Nunit
的简单应用

1、单元测试介绍:
针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作。
TestCase的编写最好放到方法编写之前。道理很简单。比如,组装一台电视机,第一种,把所有部件都组装好,然后再对整个电视机进行测试;第二种,先对每一个组成部件进行测试,每个部件都OK,然后再组装。哪种的效率高些,显而易见。
当然在实际项目中,做到这点很难。首先对开发人员的要求很高,而且会加大工作量。但好处也很明显。
2、Nunit介绍
基于.net的单元测试工具。具体用法网上很多,不再赘述。
贴个界面:


3、应用
我们的项目还没有单元测试这块,我自己做了几个case效果还不做。估计下个版本会加上这块。但不妨碍我们用这个工具。
简单介绍说下,用到工具的情形:系统很庞大,所以在前期开发中的自测和修改Bug时都很麻烦。
比如,我在一个流程的最后一步调用了一个很烦的函数。
要对这个函数进行功能测试。首先你要运行自己的系统,然后一个流程一个流程的走下去,走到调用该函数的流程,然后测试,发现函数不对。。然后你修改函数,改好后再走一遍刚刚的流程,很费事,很费时。
做一个该函数的单元测试,把功能想好,Case都覆盖到。运行下Nunit,发现红色的
Case具体对应下就可以了。这样整个函数的功能都可以测试到,不需要再一遍一遍的走流程。调用函数时也可以放心。举个简单例子:
如:
以下对Email的验证,不满足条件的返回False否则为True
    Public Shared Function IsEmail(ByVal email As String) As Boolean

        Dim returnValue As Boolean = True

        ' Create variables.
        Dim regEx As System.Text.RegularExpressions.Regex
        Dim Match As System.Text.RegularExpressions.Match

        ' Sets pattern.
        Dim pattern As String = "^"w+((-"w+)|("."w+))*"@[A-Za-z0-9]+((".|-)[A-Za-z0-9]+)*".[A-Za-z0-9]+$"
        regEx = New System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)   ' Create a regular expression object

        If Not regEx.IsMatch(email) Then

            returnValue = False

        End If

        Return returnValue

End Function

针对一个验证Email的函数可能会有几个Case
1: ddd
2: dd33_d@.
4:  dd  aa@d

然后根据几个Case进行测试。


当然还有调试,也可以用这个进行调试。

Vs下,调试有两种,一种是F5

还有一种是附加进程。

我们当然用第二种了,即快又方便。

只要把Nunit.exe这个程序附加到进程进行调试就OK了。
当Case报错时,就可以单步跟踪这个Case,然后修改代码。

很方便。重构时用这个也不错。
posted @ 2009-02-21 09:32  arengc  阅读(306)  评论(1)    收藏  举报