junit单元测试入门很容易,在测试过程中有许多细节问题。
那么junit3.8中我们要注意哪些问题呢?
必须问题:
第一:测试类必须继承TestCase 如:public class ApplicationOperateTest extends TestCase。
第二:测试的方法必须是public void 类型的,不然就不运行如:public void testSub()。
推荐问题:
第一:测试类的命名:以xxxxTest 形式。
第二:方法的命名:以public void testXXX() 形式。
第三:当一个类提供多个方法请在setUp(),tearDown() 进行初始化和对象清空。
讨论问题:
1. 做单元测试就一定要用junit吗?
单元测试完全可以不用junit,其他手段同样可以完成。那么我们如何用其他手段来完成咧。在我们眼前其他手段是什么?
还记得写完数据库连接后写main()函数进行测试,对main()函数同样也能完成这个问题下面是我代码:
public int add(int a, int b) {
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
public static void main(String[] args) {
ApplicationOperate operate= new ApplicationOperate();
int result1=operate.add(3, 4);
if(7==result1){
System.out.println("successfully");
}
int result2=operate.sub(8, 5);
if(3==result2){
System.out.println("successfully");
}
}
}
2.那为什么有很多人用junit?
a.在一定的范围里用junit比较方面,如果说为了测试数据库是否连接而去写个junit测试感觉浪费时间,也没有这个必要
只需写个main()就可以解决了。
b.在我们测试的method比较多时。用mian()显得很笨拙也不利于测试。这时用junit比较好。而且在junit提供了大量的
断言,更好观察数据的走向和传递,把握程式的结构。
3.当我们完成一个功能时我们马上对其作了测试吗?还是完成所有功能过后再测试?
有的时候我们根本对这个类的功能进行测试在其他类进行调用的时候间接测试了(其实也就是完成所谓的测试)。我们也没有必要对每个类进行测试(比如:pojo),有的时候程序员更希望一气呵成吧,没有必要写完一个method就对其进行测试, 这时会打乱思绪,有时候一个好的方案就这样流失了。当完成一个类的全部功能时,再来写junit的这个时候效率会更高。
4.选择合适测试方法和方案,没有必要过分去追求新鲜测试手段和工具(但是我们不停去学习以后在某个场合用),不要为了想测试去写测试,因为测试是必须的,它是一个软件开发过程。测试通过请不要骄傲,仅便是逻辑通过不代表你功能完成了。
5.不要在junit中进行debug,违反了测试的意义。
如果写得有问题请及时通知,欢迎批评指正。