这个类能做单元测试么? 我写了一个类,类中主要有一个方法,这个方法逻辑简单,就是顺序调用别的类的一些方法,但是那些方法又是一个里边调一个的,最终调到一个方法里要用到得到servlet上下文的方法,现在上边要我对我写的类方法进行单元测试,我怎么测.是用junit测,能测么. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【duke731】截止到2008-07-22 09:29:43的历史汇总数据(不包括此帖):发帖的总数量:33 发帖的总分数:562 每贴平均分数:17 回帖的总数量:316 得分贴总数量:111 回帖的得分率:35% 结贴的总数量:22 结贴的总分数:328 无满意结贴数:0 无满意结贴分:0 未结的帖子数:11 未结的总分数:234 结贴的百分比:66.67 % 结分的百分比:58.36 % 无满意结贴率:0.00 % 无满意结分率:0.00 % 楼主加油 你的意思是不是有一个方法A,A的处理是调B,B里面又要调用C,....现在要对A进行单元测试?可以做一个假的B类来测试A 对呀,就是这个意思,等调到E时,E里调用了getServletContext(),我用右键点测试类>run as junit test 这样有可能得到servletcontext嘛 一个方法里要用到得到servlet上下文的方法问题在这,别的都可以,这个不行。需要借助mock之类的东西对网络上下文进行模拟,挺麻烦的。 非常麻烦,而且出了问题你无法确定是ABCDE那个类的错误.我的理解是既然你要对A做单体测试,那么只需要看他能不能调用B就可以了.没必要再去看B里面调用C,C里面调用D......这些的结果.所以你只需要做一个假的B,能得到A可以正确调用B这个结论就可以了. 如果只针对A进行单元测试的话,不需要去考虑其他的正确与否,比如A调B得到返回值,可以直接写一个死值。尽最大可能保持单元测试的独立性。 可问题是,B并不是简单地返回一个值啊.A方法传入一个数据,并且要返回处理过的数据,真正对数据的处理是在B,C,D中进行,A中根本就没有对数据处理的代码我要是做个假的B,那也没什么用了. class A{Object p1 = new Object();Object returnValue = null;//把data中数据装到p1中doA(String data,p1){returnValue= doB(data,p1);return returnValue;};}下边是别的类中方法doB(data,p1) {doC(data,p1);}//把data进行各种处理doC(data,p1) {doD(data,p1);doE(data,p1);}所以我要在A中给个假值没什么意义,因为A中根本没做什么实际操作,如果我要追进去,那类可多了,得排到doK吧. 因为你是要对A做单元测试.就算真正的处理在B,在C,那是对B,C做单元测试要考虑的问题. 就是啊,可是我现在要测A,要测A就要把B,C,D等等全都模拟出数据,因为调用的doB,doC,doD等方法中有很多都是调用那个类自身的变量完成的,而这些类变量又是在别的步骤中赋值的.........我有个问题,现在单元测试是很流行,但在一个大项目中,能够说所有的类都能进行单元测试么 请问swing中jtable单元格里面的内容怎么实现自动换行,求一个简单的例子,网上的都不行 关于win7下的word转换成pdf问题,求高手解答 c和java写的程序可以交互吗? 哪个开源的报表工具可以更方便的实现如下所示图片啊? 手把手java开发 Eclipse有类似Jbuilder编写图形界面的插件么? 问大家一个极其简单又可笑的问题 JInternalFrame的焦点问题 那位老大用过Jython,请教一个中文的问题。谢谢! 有什么好的java开发工具? 用java 类的反射机制来测试类的私有方法 打包成jar文件后加载db2数据库驱动出现异常
楼主【duke731】截止到2008-07-22 09:29:43的历史汇总数据(不包括此帖):
发帖的总数量:33 发帖的总分数:562 每贴平均分数:17
回帖的总数量:316 得分贴总数量:111 回帖的得分率:35%
结贴的总数量:22 结贴的总分数:328
无满意结贴数:0 无满意结贴分:0
未结的帖子数:11 未结的总分数:234
结贴的百分比:66.67 % 结分的百分比:58.36 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主加油
问题在这,别的都可以,这个不行。
需要借助mock之类的东西对网络上下文进行模拟,挺麻烦的。
非常麻烦,而且出了问题你无法确定是ABCDE那个类的错误.我的理解是既然你要对A做单体测试,那么只需要看他能不能调用B就可以了.没必要再去看B里面调用C,C里面调用D......这些的结果.所以你只需要做一个假的B,能得到A可以正确调用B这个结论就可以了.
尽最大可能保持单元测试的独立性。
Object p1 = new Object();
Object returnValue = null;
//把data中数据装到p1中
doA(String data,p1){
returnValue= doB(data,p1);
return returnValue;
};}
下边是别的类中方法
doB(data,p1) {
doC(data,p1);
}
//把data进行各种处理
doC(data,p1) {
doD(data,p1);
doE(data,p1);
}所以我要在A中给个假值没什么意义,因为A中根本没做什么实际操作,如果我要追进去,那类可多了,得排到doK吧.
因为你是要对A做单元测试.就算真正的处理在B,在C,那是对B,C做单元测试要考虑的问题.