使用,把包下载,然后解到一个目录,运行install.exe,打开VB。可以发现可以新建CoMunit Test Project的工程。有两个文件frmTestRunner的form,TCTestContainer是测试类。下面我们看一下如何使用comunit。先下载测试代码。
这个代码是测试二进制文件在javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" href="javascript:;" target=_self>数据库里的存取。有关二进制代码在数据库里存取的技术问题,请看另一篇文章。用什么办法来确定代码是正确工作了呢?答案当然是单元测试。
测试代码很简单,但的确很有效,它保证这段代码是正确的工作了。
' COMUnit 1.1 - TestContainer Class
Option Explicit ' Interface declaration ' Return the name of the different test case methods in this test container ' Run the specified test case methods in this test container 'Initialize the test fixture ' TODO: initialize your test fixture here 'Destroy the test fixture 'Public Sub testSampleMethod(oTestResult As TestResult) |
写单元测试代码很简单,只要完成几个函数就可以了。
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 |
这个函数是自动生成的,不用修改。
'在测试开始时自动调用 End Sub |
这个函数是每一个测试函数运行时自动调用的,可以在这个函数中初始化测试的内容。
Public Sub ITestContainer_TearDown() 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 |
这三个函数就是测试函数。TestFields是公共测试函数,另两个函数由TestFields调用。先把文件导入到数据库,再从数据库把文件导出到文件中,最后比较两个文件是否相同。
下面我们来看怎么在VB中使用。打开工程,在VB工具菜单中选项中把修改错误捕获的设置。改成遇到未处理错误的中断。如下图所未。
运行程序,出现下面这个界面。下面可以看到有一个类可以测试,选择这个类,看Test Case列表,就能看到TestFields这个测试函数了。 按RunTest。如果通过测试,就能说明这两段代码就达成目的了。
下面我们来看出现错误的情况。把函数TestField中TestFieldtoFile oTestResult注释掉。这样就只导入文件,不进行导出文件。看一下Run Tests的结果,如下图所未:
可以看到,progress条变成红色,表示运行过程中有出错的测试。下错误列表中列出出现错误函数名及错误内容,可以双击出现某条单独的错误说明。下面状态条有测试的统计信息。
我们看上面的简单的39行代码,就能保证另一个类代码的正确性,并且,以后可以进行任意的修改,只要代码能够通过测试就能保证修改的没有产生意外的错误。