谢谢指点~
我们的TXBean依赖于三个数据容器,一个公共,一个输入,一个输出。和一些DBACCESS,少许的更改类。
当然业务逻辑的封装是面向过程的代码。。。
UT工具很难凑效。
----------------------------------------------------------
基于Junit的CCB交易Bean测试工具(本地测试)V0.2
基于Junit适用CCB5的TXBean业务代码测试工具。
谢谢
可能我们的工作环境不一样
经过两晚的加班 基本上搞定了。共享给大家。。。
使用 Junit,jdom,log4j, 暂时没有使用jMock。
背景、适用CCB5.0:
1。 我们的TXBean extends B2CBean,代码量在600行以上的 。(3000的过程式代码让你修改,你怕怕 ?)
2。 TXBean中都是过程式脚本,对外界的依赖再也IBSEnv,InputArea,OutputArea,和DBACCESS,以及PUB类。
3。 我们的web开发,编码,部署,测试是件麻烦的事情。ccb的测试开发给我的感觉就是:n多人在不停地重启web app.
测试目的:
1。 配合log4j,验证我们TXBean的业务逻辑是否正确,即: 过程式的代码是否如你我所愿
2。 特别是你修改代码时,修改了过多的if-else,真担心复杂的逻辑被你搞坏了。所以看看程序轨迹是件很让你自信的事。
3。 重要一点: 让TXBean可以在你本地运行! 脱离J2EE容器。
实现方式:
1。 更改TXBean的父类:B2CBean,将TXProccess(),AXProcess()方法的三个参数替换掉一个ContextHashtable.
2。 输入参数使用InputArea.xml文件配置。
3。 配合log4j
使用方式:
1。 下载上传的JunitTest_V0.1.rar 解压开,使用Eclipse打开项目,在 glt.ccb5.TXTest目录下,copy进你的TXBean,更改父类为
glt.ccb5.TXTest.B2CBean
基本上无需更改,只需调整package.
2。 在你的TXBean中必须使用log4j来打印程序轨迹,这个必须你自己做。
加入如下代码:
private Logger log = Logger.getRootLogger();
{
BasicConfigurator.configure();
}
在你TXBean中关键地方或者你在意的地方写入 log.debug()...
加入的代码不会影响你的程序,因为在生产环境,root设置的是 priority="info"。
3。 DBACCESS类还没来得及完善,所以你可以自己使用JDBC方式连接。
4。 克服了运行容器,和DB连接,剩下的问题就不多了,就可以在本地jvm中跑跑你的TXBean 过程式的代码了。
存在的问题:
1。 Junit本来是个单元测试工具,现在用来测试业务逻辑,有些无意义。(请教jdon的回复),在我们特殊的国情下,也许用一定的意义。
2。 JMock可以更巧妙地解决很多依赖问题,在使用中我会不停更新,也会继续分享。
欢迎各位同事使用,修改,提出意见。
Email: glt_beyond@126.com
可惜这里不能附件 ;)
[该贴被gltbeyond于2007年08月01日 22:17修改过]