您的位置:首页 > 其它

单元测试教程(一):Junit3的使用

2017-02-17 15:02 525 查看
junit3的使用

在360OS的项目中,我进行了简单的单元测试,采用的junit3,虽然说因为种种原因,没有起到很大的作用,但是思路还是很重要的,还是值得和大家分享。

Junit3 的实用例子

import junit.framework.TestCase;
//Unit3中,测试类需要继承junit.framework.TestCase类
public class testQZ extends TestCase {
public void setUp(){
//setUp方法会在每个测试用例执行前被调用以完成初始化工作
}
public void tearDown(){
//tearDown方法则在结束测试结果时被调用,用于释放测试使用中的资源
}
//方法名必须以“test”为前缀,它必须返回void,而且它必须没有任何参数
public void testTest(){
assertTrue(1==1);
}
}


我们找其中一个的方法,对其进行单元测试

/**
* 这个判断展示windows形式广告还是barnner形式广告的方法
* 如果触发展示bar广告,则show=1,如果距离上次展示的时间间隔>配置文件中设置的时间间隔,则展示bar形式的广告,看看下面的代码,其实很好理解
* 1:展示bar形式的广告 2 :展示window形式的广告 -1:表示不展示广告
* @param show 展示bar或者win
* @param noti_bar_fre  bar的局部更新时间
* @param noti_window_fre win的局部更新时间
* @param time 时间间隔
* @return
*/
private int show_lo_fre(int show,int noti_bar_fre ,int noti_window_fre ,int time) {
switch (show) {
case 1: // bar
if (time > noti_bar_fre ) {
return 1;
} else if (time > noti_window_fre) {
return 2;
}
return -1;
case 2: // window
if (time > noti_window_fre) {
return 2;
} else if (time > noti_bar_fre) {
return 1;
}
return -1;
default:
return -1;
}
}


单元测试的代码:

import junit.framework.TestCase;

public class testJBu extends TestCase {

//为了方便讲解,我们直接将方法引入进来
private int show_lo_fre(int show,int noti_bar_fre ,int noti_window_fre ,int time) {
switch (show) {
case 1: // bar
if (time > noti_bar_fre ) {
return 1;
} else if (time > noti_window_fre) {
return 2;
}
return -1;
case 2: // window
if (time > noti_window_fre) {
return 2;
} else if (time > noti_bar_fre) {
return 1;
}
return -1;
default:
return -1;
}
}
public void setUp(){

}
public void tearDown(){

}

/**
* 触发展示bar时间,show = 1
*/
//bar time<noti_bar_fre  time<noti_window_fre 结果都不展示 -1
public void testJuBu1(){
int show = 1;
int noti_bar_fre = 10;
int noti_window_fre = 20;
int time = 5 ;
int result = show_lo_fre(show,noti_bar_fre ,noti_window_fre ,time);
String remark = "测试局部时间的逻辑:time为间隔时间,time<noti_bar_fre  time<noti_window_fre 结果都不展示 -1(不展示)";
new verifyAssert().verifyEquals(result, -1, remark, "com.bjcj.OS.JB", "testJBu", "testJuBu1");

}
//bar time<noti_bar_fre  time>noti_window_fre 结果展示 2
public void testJuBu2(){
int show = 1;
int noti_bar_fre = 10;
int noti_window_fre = 2;
int time = 5 ;
int result = show_lo_fre(show,noti_bar_fre ,noti_window_fre ,time);
String remark = "测试局部时间的逻辑:time为间隔时间,time<noti_bar_fre  time>noti_window_fre 结果展示 2(展示win广告)";
new verifyAssert().verifyEquals(result, 2, remark, "com.bjcj.OS.JB", "testJBu", "testJuBu2");
}
//......此处省略了N个条件组合的测试用例,都是类似的格式,每个条件都是要覆盖到的,比较多,我这里就不一一列举了
}


右键点击,testJBu ,选择Run as -> Junit test,绿色,说明8个测试用例都执行通过,若有一个失败,则为红色



new verifyAssert().verifyEquals(result, 2, remark, “com.bjcj.OS.JB”, “testJBu”, “testJuBu2”); ? 你有留意到这句代码是干什么的吗?

我们在下一个教程中进行分解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  junit3