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,然后修改代码。
很方便。重构时用这个也不错。
1
针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作。
TestCase
当然在实际项目中,做到这点很难。首先对开发人员的要求很高,而且会加大工作量。但好处也很明显。
2
基于.net
贴个界面:
3
我们的项目还没有单元测试这块,我自己做了几个case
简单介绍说下,用到工具的情形:系统很庞大,所以在前期开发中的自测和修改Bug
比如,我在一个流程的最后一步调用了一个很烦的函数。
要对这个函数进行功能测试。首先你要运行自己的系统,然后一个流程一个流程的走下去,走到调用该函数的流程,然后测试,发现函数不对。。然后你修改函数,改好后再走一遍刚刚的流程,很费事,很费时。
做一个该函数的单元测试,把功能想好,Case
Case
如:
以下对Email
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
1: ddd
2: dd33_d@.
4: dd aa@d
然后根据几个Case
当然还有调试,也可以用这个进行调试。
Vs
还有一种是附加进程。
我们当然用第二种了,即快又方便。
只要把Nunit.exe
当Case
很方便。重构时用这个也不错。

浙公网安备 33010602011771号