- 浏览: 245190 次
文章分类
- 全部博客 (395)
- Tech (0)
- [随笔分类]心情 (95)
- [随笔分类]技术 (112)
- [随笔分类]管理心得 (13)
- [随笔分类]Code SOP (5)
- [随笔分类]望图知意 (11)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (8)
- [随笔分类]重构代码 (1)
- [随笔分类]童童 (2)
- Program (1)
- [随笔分类]看你知道不知道 (1)
- [网站分类]4.其他技术区 (31)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (21)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [随笔分类]昨日关注 (15)
- [网站分类]6.读书区(技术书籍阅读心得、书籍推荐) (3)
- [随笔分类]一步一个脚印 (2)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (3)
最新评论
在进行测试驱动开发的过程中,编写测试用例是比较繁琐的,但是更繁琐的是使用ComUnit框架进行测试的过程中,需要在频繁进行测试用例名称的注册,如下边的代码:
' 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()
End Property
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()
End Property
这很好,但是测试用例的名称的注册、删除、修改的过程就麻烦了,需要改好多地方,时间长了,Array就好长的,周末在回家的路上又开始翻看《重构》这本书, Martin Fowler提到,在Junit框架中,如果测试用例的名称如果是固定前缀的,那么,就不需要频繁注册测试用例名称了,嗯,这个方法很好,至少我这个懒人很喜欢,经过研究,利用TLI很容易就实现了在VB6中得这种反射用法,代码如下:
' 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()
ITestContainer_TestCaseNames = AutoGetTestCaseNames
End Property
'Auto get testcasenames
'TestCaseName prefix must is "Test_"
Private Function AutoGetTestCaseNames() As Variant()
Dim TypeLib As Object
Dim Prop As Object
Dim i As Integer
Dim vHas As Boolean
Dim v() As Variant
Set TypeLib = CreateObject("TLI.TLIApplication")
Set TypeLib = TypeLib.InterfaceInfoFromObject(Me)
For Each Prop In TypeLib.Members
If Prop.InvokeKind = INVOKE_FUNC Then
If UCase(VBA.Left(Prop.Name, 5)) = UCase("Test_") Then
If vHas = False Then
vHas = True
ReDim Preserve v(0)
Else
ReDim Preserve v(UBound(v) + 1)
End If
v(UBound(v)) = Prop.Name
End If
End If
Next
Set TypeLib = Nothing
Set Prop = Nothing
On Error GoTo onErrors:
AutoGetTestCaseNames = v
Exit Function
onErrors:
AutoGetTestCaseNames = Array()
End Function
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()
ITestContainer_TestCaseNames = AutoGetTestCaseNames
End Property
'Auto get testcasenames
'TestCaseName prefix must is "Test_"
Private Function AutoGetTestCaseNames() As Variant()
Dim TypeLib As Object
Dim Prop As Object
Dim i As Integer
Dim vHas As Boolean
Dim v() As Variant
Set TypeLib = CreateObject("TLI.TLIApplication")
Set TypeLib = TypeLib.InterfaceInfoFromObject(Me)
For Each Prop In TypeLib.Members
If Prop.InvokeKind = INVOKE_FUNC Then
If UCase(VBA.Left(Prop.Name, 5)) = UCase("Test_") Then
If vHas = False Then
vHas = True
ReDim Preserve v(0)
Else
ReDim Preserve v(UBound(v) + 1)
End If
v(UBound(v)) = Prop.Name
End If
End If
Next
Set TypeLib = Nothing
Set Prop = Nothing
On Error GoTo onErrors:
AutoGetTestCaseNames = v
Exit Function
onErrors:
AutoGetTestCaseNames = Array()
End Function
测试用例如下:
Public Sub Test_Ver(oTestResult As TestResult)
With oTestResult
f.Config App.Path & "\TestMatter\FileClass\ver.exe"
.Assert f.Ver() = "2.0.0.30", "0001"
f.Config App.Path & "\TestMatter\FileClass\ver.txt"
On Error GoTo onErrors
f.Ver
.Assert False, "0002"
onErrors:
End With
End Sub
With oTestResult
f.Config App.Path & "\TestMatter\FileClass\ver.exe"
.Assert f.Ver() = "2.0.0.30", "0001"
f.Config App.Path & "\TestMatter\FileClass\ver.txt"
On Error GoTo onErrors
f.Ver
.Assert False, "0002"
onErrors:
End With
End Sub
利用这段代码所有Test_开头得测试用例,系统会自动发现,就不需要频繁注册用例名称了,感觉爽。
现在才感受到开源之美,很多小功能,自己修订就好了,而且用起来也好舒服。
点滴:
以前也看过几遍Refactoring这本书了,每次都有新得收获,最近采用ComUnit进行开发后,效率真的不错,而且开发方式也有了本质得变化,测试驱动开发必须经过实践,才能感受到其中得乐趣。
发表评论
-
启动NDuiker项目
2005-01-20 17:05 431今天是进驻博客园的第一天,在这里安家真的很不错,十分感谢DuD ... -
NDuiker项目第2天总结
2005-01-21 08:53 627昨天晚上基本上实现了 ... -
NDuiker项目第3天
2005-01-22 22:50 560今天是周六了,原本以为是很轻松的一天,结果只有到了这个时 ... -
NDuiker项目第6天
2005-01-25 16:50 550这几天好忙,也好累呀,这几天是公司项目收尾的阶段,忙的都透不过 ... -
对.Net 类库的一点思索
2005-02-02 09:29 579这些天主要在测试GDI+的 ... -
测试一个网站的想法
2005-02-05 17:07 525由于项目的需要,测试了一下“上海研发公共服务平台” 登录:ht ... -
项目建议书编写总结
2005-02-25 15:46 745昨天完成了项目建议书的编写工作,整个春节期间的工作到今天全部完 ... -
MyIE 增加了RSS功能
2005-02-28 09:54 545今天更新了MyIE,发现MyIE增加了RSS功能,试用了一下, ... -
www.beihua.edu.cn计划摘录
2005-02-28 14:11 756www.beihua.edu.cn工作计划 1:网站后期制作计 ... -
网站调研资料记录
2005-03-01 15:56 603资料整理备忘 1:内外网IP确认 ... -
静静的看书
2005-03-08 17:18 547这几天还是很忙,但是似乎好了很多,因为目前主要是写一个基于Sm ... -
我的Smart Client 的学习笔记
2005-03-09 15:35 1652User Interface Process (UIP) Ap ... -
研发、开发、运营
2005-03-25 12:15 614这些天很忙,网络也不争气,才刚刚好一点。 ... -
当需求变更来临
2005-04-30 14:26 516昨晚已经和老婆安排好5 ... -
重新登录Window2003的域
2005-05-12 09:58 663今天公司要求重新登录Windows2003的域,记录一下,以后 ... -
当不愿意写字得时候
2005-05-16 15:36 675做项目得前期分析得时候,我还是比较喜欢在本子上写写、画画得,通 ... -
远离技术的时候
2005-06-20 11:05 397这一个月一直在忙一个项目,现在项目的可研报告也 ... -
Asp.Net 中使用客户端Activex控件需要注意的事情
2005-08-13 12:57 924案例:Asp.Net +VB制作的Activex控件 操作系统 ... -
Office开发中的测试的与众不同之处
2005-08-22 14:29 676今天修改了一下自己以 ... -
大家确实都很忙
2005-08-27 08:20 706先谈几个技术问题: 1 ...
相关推荐
vb插件:VB6测试工具ComUnit的辅助工具,用于测试用例代码批量生成VB6IDE_ComUnitHelp_Addin
在使用过NUnit后,一直想在VB6中使用一下单元测试工具,目前比较流行的是VBUnit和ComUnit,我比较喜欢ComUnit主要是它是开源的,当然用起来比较爽了, ComUnit使用比较简单,
COMUnit for Visual Basic 6
一直想在VB6中使用一下单元测试工具,目前比较流行的是VBUnit和ComUnit,我比较喜欢ComUnit主要是它是开源的,当然用起来比较爽了.
vbAddin_ComUnitHelp(vb测试工具ComUnit的辅助工具,可以方便的自动生成case声明等) 1.例如函数main1中调用了一个下位函数fun1,则需要在源代码中的两个地方插入代码: (1)main1调用fun1的上一步插入代码isShield_...
vb单元测试工具,在source forge上下载的测试可以使用,其它两个我下载试用了,都不可以安装。
在使用过NUnit后,一直想在VB6中使用一下单元测试工具,目前比较流行的是VBUnit和ComUnit,我比较喜欢ComUnit主要是它是开源的,当然用起来比较爽了
Site-ul ofialial comunității Aniga。
组合简短说明和动机。...安装将此行添加到您的应用程序的Gemfile中: gem 'comunit' 然后执行: $ bundle 或将其自己安装为: $ gem install comunit贡献贡献方向在这里。执照根据的规定,该gem可作为开源软件。