单元测试实践(VB版)
2008-04-09 03:57:46来源:互联网 阅读 ()
使用,把包下载,然后解到一个目录,运行install.exe,打开VB。可以发现可以新建CoMunit Test Project的工程。有两个文件frmTestRunner的form,TCTestContainer是测试类。下面我们看一下如何使用comunit。先下载测试代码。
这个代码是测试二进制文件在数据库里的存取。有关二进制代码在数据库里存取的技术问题,请看另一篇文章。用什么办法来确定代码是正确工作了呢?答案当然是单元测试。
测试代码很简单,但的确很有效,它保证这段代码是正确的工作了。
' COMUnit 1.1 - TestContainer ClassOption Explicit
' Interface declaration
Implements ITestContainer
'定义一个recordset
Dim k As New adodb.Recordset
'定义bin类
Dim BinTest As clsManagerBinFields
'定义源文件名和目标文件名
Dim SourceFile As String, DesFile As String
' Fixture Member Variables
' TODO: specify your TestContainer test fixture member variables here
' Return the name of the different test case methods in this test container
Public Property Get ITestContainer_TestCaseNames() As Variant()
' TODO: add the names of your test methods as a parameter into the Array() function
ITestContainer_TestCaseNames = Array("TestFields")
End Property
' Run the specified test case methods in this test container
Public Sub ITestContainer_RunTestCase(oTestCase As ITestCase, oTestResult As TestResult)
On Error GoTo ErrorHandler
InvokeHook Me, oTestCase.Name, INVOKE_FUNC, oTestResult
' CallByName Me, oTestCase.Name, VbMethod, oTestResult
Exit Sub
ErrorHandler:
oTestResult.AddError Err.Number, Err.Source, Err.Description
End Sub
'Initialize the test fixture
'在测试开始时自动调用
Public Sub ITestContainer_Setup()
' TODO: initialize your test fixture here
'指定源文件名,这里就指定这个文件
SourceFile = App.Path & "\tctestcontainer.cls"
'指定目标文件名,这里指定为当前目录下的test
DesFile = App.Path & "\test"
Set BinTest = New clsManagerBinFields
'如果目标文件存在,则删除这个文件
If Dir(DesFile) <> "" Then Kill DesFile
'建立一个新的Recordset,这里用一个虚拟的数据源来代替,这样就不用打开数据库了
k.Source = "test"
k.Fields.Append "thefile", adBinary, -1, adFldUpdatable
k.Open , , adOpenKeyset, adLockBatchOptimistic
k.AddNew
End Sub
'Destroy the test fixture
Public Sub ITestContainer_TearDown()
' TODO: destruct your test fixture here
' k.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\xpconnect\db\test.mdb;Persist Security Info=False"
' k.UpdateBatch adAffectAllChapters
' k.Close
'测试完成后自动完成
Set k = Nothing
Set BinTest = Nothing
End Sub
'Public Sub testSampleMethod(oTestResult As TestResult)
' TODO: add your test code here
'End Sub
Private Sub TestFieldtoFile(oTestResult As TestResult)
oTestResult.Assert BinTest.FieldToFile(DesFile, k!thefile), "导出到文件不成功"
End Sub
Private Sub TestFiletofield(oTestResult As TestResult)
oTestResult.Assert BinTest.fileTofield(SourceFile, k!thefile), "导入到数据库不成功"
End Sub
Public Sub TestFields(oTestResult As TestResult)
TestFiletofield oTestResult
TestFieldtoFile oTestResult
oTestResult.Assert FileLen(SourceFile) = FileLen(DesFile), "文件不相符!"
End Sub
写单元测试代码很简单,只要完成几个函数就可以了。
Public Property Get ITestContainer_TestCaseNames() As Variant()' TODO: add the names of your test methods as a parameter into the Array() function
ITestContainer_TestCaseNames = Array("TestFields")
End Property
第一个,ITestContainer_TestCaseNames。是测试函数的列表,ITestContainer_TestCaseNames = Array("TestFields"),TestFields就是函数名,要测试这个函数,就写在这个数组里。
Public Sub ITestContainer_RunTestCase(oTestCase As ITestCase, oTestResult As TestResult)On Error GoTo ErrorHandler
InvokeHook Me, oTestCase.Name, INVOKE_FUNC, oTestResult
' CallByName Me, oTestCase.Name, VbMethod, oTestResult
Exit Sub
ErrorHandler:
oTestResult.AddError Err.Number, Err.Source, Err.Description
End Sub
这个函数是自动生成的,不用修改。
'在测试开始时自动调用
Public Sub ITestContainer_Setup()
End Sub
这个函数是每一个测试函数运行时自动调用的,可以在这个函数中初始化测试的内容。
Public Sub ITestContainer_TearDown()
End Sub
这个函数是每个测试函数结束时,自动运行,在这个函数中可以释放在测试中使用的资源。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:带宽大小我心知专业带宽评测工具
下一篇:测试自动化服务的定位
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash