Junit Test a getter
程序员文章站
2022-04-19 23:11:50
...
[b] 问题:[/b]
怎么测试一个对象的get方法?怎么判断哪些需要测试,哪些不需要呢?
[b] 情景:[/b]
对于JUnit测试的新兵来说也是程序测试的新兵。他们最想知道的是什么要测试,什么不需要测试。所有一般来说先从最简单的测试开始入手是个好的选择。但是正因为是新兵所以会出现编写很多很多的测试。导致认为测试无聊而导致情绪的低落;在者这样的测试实际上从效果上不怎么好。希望测试人员要注意尽量编写[b]有效[/b]测试案例。
[b]原则:[/b]
第一个原则: 如果一个get方法只是简单的返回域内的值,那么就不用去考虑去为它写测试程序;但是,如果这个方法做了一些更为复杂的操作,那么还是要考虑测试一下。如果你决定为它写测试程序,其实也很简单:因为一个get方法有返回值,所以可以直接比较期望值和实际返回值。例如
或者
第二种实行方法在构造函数中就将其进行格式转换,以备将来使用。这是一种效率优化的策略。但是这种情况下,你还是应该进行这个测试,因为你现在验证的是构造函数是否进行了正确的运算。这时候测试程序认为get方法是正确的。并用它来测试构造函数。
怎么测试一个对象的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方法是正确的。并用它来测试构造函数。
上一篇: Android webview 关于返回键和历史栈
下一篇: 谈到女人话就多得
推荐阅读
-
test
-
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法_php技巧
-
js中getter和setter用法实例分析
-
apache 提示You don't have permission to access /test.php on
-
浅谈JS对象添加getter与setter的5种方法
-
junit4的参数化测试z
-
Spring结合Junit出现了initializationError(0.000s)错误解决办法
-
Java学习记录:纠错Junit单元测试遇到的initializationerror:method initializationerror not found
-
使用junit进行单元测试时报错Invalid bound statement (not found)
-
######ssh:Junit遇到initializationError(知识点:Junit测试3要素:public、void、无参)==解决:检查所有方法的注解。是否添加正确