问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求问浅谈:怎么为私有方法写单元测试

发布网友 发布时间:2022-05-12 20:28

我来回答

2个回答

热心网友 时间:2023-09-19 06:52


//被测试方法

private Double format(Double fileSize){

Double size = fileSize;

size = size / 1024 / 1024;

size = (int)(size.doubleValue() * 10 + 0.5) / 10.0;

return size;

}

@Test

public void testFormat(){

ClientDownloadAction action = new ClientDownloadAction();

double size = 3732930;

Class class1 = action.getClass();

try {

Method format = class1.getDeclaredMethod("format", Double.class);

format.setAccessible(true);//设为可见

Double result = (Double)format.invoke(action, size);

Double expect = 3.6;

Assert.assertEquals(expect, result);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

   


热心网友 时间:2023-09-19 06:53

例如:
● 一个方法中有太多test case被测试的方法做了太多事情。
● 太多的setup/teardown表示被测试类的耦合性太高。
● 改变一个地方,多处测试受影响也许是测试的设计问题,也许是实现代码中有过多依赖。
● 测试上下文中有太多依赖设计中的耦合性太高。
● 测试运行速度缓慢表示你的单元测试也许在使用外部系统,例如网络、数据库、文件系统等等。通常也意味着被测试类有过多的职责。
里面还有一条:
为了测试的目的,把成员变量或者方法的访问权限变成protected或者public可能是因为测试代码跟被测试的代码耦合太高,也可能是本来私有的东西有太多行为,这种情况下应该考虑把它抽出来作为独立的对象。
我的答案是,在成功的用了TDD或者测试驱动重构(Test-Driven Refactoring)以后,你的代码中就不会出现针对私有方法的测试。
如果你用TDD编写全新的代码,在没有测试之前是没有功能的。私有方法是到了重构那一步的最后才会出现。把代码转移到私有方法中的这个过程,已经被先前写过的测试覆盖到了。所以,如果你成功了用了TDD,代码中就不会出现针对私有方法的测试。
如果你在改善遗留代码,你就该使用测试驱动重构。这样的话,可能会临时针对私有方法写一些测试
。但是,随着测试覆盖率的增加,那些public方法的测试会覆盖到所有的路径,也包括了私有方法的调用。所以,你也不再需要测试私有方法。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大数据具体是干什么的 大数据是做什么工作的 一只白羊(DD)与另一只白羊(Dd)交配,生下的羊基因组成是?该羊与一只黑... 一对白羊生了1只白羊,3只黑羊,有关基因用D和d表示,下列说法正确的是... ch美-瓷(一半接近历史) 麻花是不昰上火 吃麻花会上火吗 麻花不能和什么一起吃 吃完酸菜鱼很腥 苏州市区有那些名山呢— 苏州十大山景点介绍 我长大后想当特警200字作文? 我的世界口袋精灵怪力地裂怎么100命中 我喜欢的女孩子感觉很随便,想让我叫她老婆,是不是随便? 我的世界神奇宝贝小火龙努力值练什么 相处时,女人允许你怎样称呼她,是对你动心了? 如果她允许你叫哪四种称呼就表明把你当自己人了? 我的世界宝可梦骑拉帝纳刷什么努力值 我的世界神奇宝贝马虎性格坚盾剑怪努力值怎么分配 口袋妖怪漆黑的魅影 有什么精灵值得去练啊 除了神兽 女生同意你叫她老婆代表什么? 复刻 怪力 无防御 地裂 有用吗 抖音主播管我要礼物我明确拒绝他啦他友情的小船可就番了他把我取关了,我也把_百度问一问 同学来我宿舍把我打了,我也把他打伤,怎么办? 别的小朋友今天520都有祝福,我也把这份祝福送给你.什么意思 朋友把我拉黑。我也把他拉黑吗? 男生说即使做不成恋人关系,我也把你当成小妹这句话什么意思,我该怎么回答 我是男友的初恋,我也把我的第一次给啦他,都说男人一生要经历三个女人请问,我们有以后吗? 我爱的女人把我拉黑了,我心里煎熬,我也把爱我的女人拉黑了,把这种方式报复到另一个人身上? 我看清一个人了,即使这个人再怎么对我好。我也把他对我好,当驴肝肺。我这样做,不是我人有问题吧? '我也把最美好的K透用英语该怎么写 brief size是什么意思 防水涂料十大品牌,外墙涂料有哪些,防火涂料厚 外墙防水哪家防水公司做得不错,口碑好就可以了。 外墙防水要怎么做? css table边框 如何兼容ff ie 德云系传感器在各个行业有哪些应用? 究极绿宝石5.3多边兽怎配招 究极绿宝石攻守之道在哪 维生素E 去黑眼圈和眼袋效果好么? ★★怎么办?维e可以去黑眼圈眼袋吗,晚上睡觉前用维生素E可以去黑眼圈眼袋吗??拜托了各位 谢谢 维生素e可以用来去除眼袋和黑眼圈吗 健康宝怎么删除不用的手机号 北京健康宝有两个手机号怎么删除一个 有谁知道茶技龙行十八式、凤舞十八式? 兰州:企业连续3年未拖欠农民工工资 这钱不用交 农民工保证金退回可以不打公司账户吗 怎么查询注册时间 如何知道注册时间 怎么看自己的注册多久了 微视个人主页尺寸