当前位置: 首页 > news >正文

Junit Test a getter

[b] 问题:[/b]
怎么测试一个对象的get方法?怎么判断哪些需要测试,哪些不需要呢?
[b] 情景:[/b]
对于JUnit测试的新兵来说也是程序测试的新兵。他们最想知道的是什么要测试,什么不需要测试。所有一般来说先从最简单的测试开始入手是个好的选择。但是正因为是新兵所以会出现编写很多很多的测试。导致认为测试无聊而导致情绪的低落;在者这样的测试实际上从效果上不怎么好。希望测试人员要注意尽量编写[b]有效[/b]测试案例。
[b]原则:[/b]
第一个原则: 如果一个get方法只是简单的返回域内的值,那么就不用去考虑去为它写测试程序;但是,如果这个方法做了一些更为复杂的操作,那么还是要考虑测试一下。如果你决定为它写测试程序,其实也很简单:因为一个get方法有返回值,所以可以直接比较期望值和实际返回值。例如

public class SongTest extends TestCase{
Song song = new Song("Bicyclops","Fleck", 260);
assertEquals(4.333333d, song.getDurationInMinutes(),0.000001d);
}



public class Song{
private String name;
private String artistName;
private int duration;

public Song(String name, String artistName, int duration){
this.name = name;
this.artistName = Name;
this.duration = duration;
}

public double getDurationInMinutes(){
return (double)duration / 60.0d;
}
}

或者

public class Song{
private String name;
private String artistName;
private int duration;
private double durationInSeconds

public Song(String name, String artistName, int duration){
this.name = name;
this.artistName = Name;
this.duration = duration;
this.durationInSeconds = (double) duration / 60.0d;
}

public double getDurationInMinutes(){
return durationInSeconds;
}
}

第二种实行方法在构造函数中就将其进行格式转换,以备将来使用。这是一种效率优化的策略。但是这种情况下,你还是应该进行这个测试,因为你现在验证的是构造函数是否进行了正确的运算。这时候测试程序认为get方法是正确的。并用它来测试构造函数。
http://www.lryc.cn/news/570574.html

相关文章:

  • Spring+Quartz实现定时任务的配置方法
  • 拯救OIBH总部
  • 甘特图工具和资源。你了解多少?
  • 62、数据访问-druid数据源starter整合方式
  • Python小酷库系列:Python中的JSON工具库(3)
  • DeepSeek提示词指南:从基础到高阶的全面解析
  • C++ 01背包问题
  • Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?
  • win7系统怎么打开Windows PowerShell
  • MySQL-DCL数据控制语言详解
  • 双击ctrl搜索 意在颠覆用户的习惯
  • RPG29:制作ui基础
  • 蜘蛛日志分析工具_如何分析网站日志 - 360蜘蛛池
  • 免费遥感影像数据下载网址汇总
  • 医学病例关键词抽取与信息拼凑系统
  • Java正则分组:高效捕获与引用技巧
  • 微信小程序引入iconfont
  • js写txt文件及js数组的有关操作
  • 模型上下文协议(MCP)使用指南
  • 项目工时估算PERT法
  • 数学建模网站汇总
  • 1688 API 接口接入说明与文档
  • java中的异常(带你全面了解异常)
  • 计量经济学期末考试
  • 学习笔记-协议
  • PWM调节输出可控直流电压
  • (CNVD-C-2019-48814)Weblogic wls9_async_response 反序列化远程命令执行漏洞复现
  • jspsmartupload上传下载,解决乱码
  • 追踪 Kubernetes 中的网络流量
  • 【前端实战】如何让用户回到上次阅读的位置?