单元测试实践小结[4]
文章作者 100test 发表时间 2008:03:17 11:56:56
来源 100Test.Com百考试题网
编写Stubs和Mock object
1. 接口的mock比较容易,测试时,编写stubs和mock object来辅助测试,是非常重要的技术. Mock object分动态mock和静态mock.采用EasyMock可以很好的实现动态mock。
2. 具体类的mock,也很简单,通常利用子类继承的方式实现,利用cglib框架可以很好大达到测试目的。
3. 静态方法的mock。静态方法由于是直接面对服务对象,比较麻烦。不过,并非不可以测试,实际我们可以利用classpath的特点来实现。
方法很简单,mock类与建立一个将被mock的类的package,class name以及方法签名完全一样,但方法实现却是mock过的。在运行测试用例时,把mock类打成jar(不一定要这么做), 在配置classpath时确保,该jar的位置在当前class之前,就可以实现替换。代码如下:StaticMock.rar
使用成熟单元测试框架
除了最基本的Junit外,Opensource提供了很多非常有价值的单元测试框架,熟练使用这些工具,可以提高测试的效率。包括对准备大量的数据,以及j2ee的框架代码。
现有代码的可选自动化测试工具:
1. POJO:JUnit, JMock或者EasyMock
2. Data Object:DDTUnit。准备大量数据。
3. Dao:DBUnit。初始化数据库。批量产生数据库数据。
4. EJB: MockEJB或者MockRunner
5. Servlet:Cactus
6. Struts:StrutsUnitTest
var arrBaiduCproConfig=new Array().
arrBaiduCproConfig[ uid ] =65193.
arrBaiduCproConfig[ n ] = exam8cpr .
arrBaiduCproConfig[ tm ] =30.
arrBaiduCproConfig[ cm ] =35.
arrBaiduCproConfig[ um ] =34.
arrBaiduCproConfig[ w ] =575.
arrBaiduCproConfig[ h ] =60.
arrBaiduCproConfig[ wn ] =2.
arrBaiduCproConfig[ hn ] =1.
arrBaiduCproConfig[ ta ] = right .
arrBaiduCproConfig[ tl ] = bottom .
arrBaiduCproConfig[ bu ] =0.
arrBaiduCproConfig[ bd ] = #ffffff .
arrBaiduCproConfig[ bg ] = #ffffff .
arrBaiduCproConfig[ tt ] = #0000ff .
arrBaiduCproConfig[ ct ] = #333333 .
arrBaiduCproConfig[ url ] = #666666 .
arrBaiduCproConfig[ bdl ] = #ffffff .
arrBaiduCproConfig[ rad ] =1.
document.write(baiduCproIFrame()).
baidu