单元测试 junit
每个开发者每天都在写程序,写程序就出现一个问题 bug,代码中错误。 写完代码要验证我们自己写的代码有没有错误,验证过程:test 测试 早期测试就是通过在代码中加入打印语句,根据预测结果和打印结果是否一致,一致就代表代码是正确的,不一致代码有问题,继续找bug,修改。 这种方式不方便, 1)早期只有main方法,不是为测试而生,为运行而生。日常习惯用测试。main只能一个 2)测试时通过注释不同的代码来切换。非常麻烦 3)当程序稳定,这些打印的代码就成为垃圾代码,虽然这些代码是打印后台,但如果用户量上来每次调用就会耗时,甚至系统卡顿
怎么解决呢? 单元测试单独方式就应运而生。
如何使用junit?
junit第三方公司提供 1)找到它,它是一个jar(一堆class文件)官网、常用eclipse 2)非java.lang.类,都需要导包 import,org.junit.; org.junit.Test; 测试类(@Test 注解) 3)给方法上戴帽子@Test 4)运行,有新的菜单项 RunAs junit test
main方法和junit有什么区别?
main是java标准,一个类中执行入口,用来执行程序的。所以它直接使用。 junit 是第三方(非java-sun-oracle)org.junit出品的,需要找jar包(eclipse),导包import, main一个类中只能一个,junit单元测试方法多个 运行方式:main使用java application,junit使用junit test(额外绿的条) 结论:根本没有关系,简单测试可以直接在main放中来测试
package test;
import org.junit.Test;
public class TestPrint {
public static void main(String[] args) {
System.out.println("main test");
}
@Test
public void num() {
System.out.println("junit num");
}
@Test
public void print(){
System.out.println("junit test");
}
@Test
public void print2() {
System.out.println("junit t2");
}
}
java中流程控制分3类
1)顺序执行:从上向下,从左向右(=赋值语句,先执行右边)所有的代码都执行 2)分支判断:部分的代码执行部分的代码不执行,根据判断条件来决定 需求:天下雨打伞 java:if(条件=下雨){ 打伞 } 3)循环迭代:一部分代码反复执行, 需求:打印0到9 java: for(循环判断 i=0; i<10; i++)
分支判断 judgment
1)if语句(单分支) a. if(条件){ … } b. if(条件){ … } else { … } c. else-if if(条件){ … }else if(条件){ … } else{ … }
package test;
import org.junit.Test;
public class TestIf {
@Test
public void testIf() {
boolean isRainning = true;
if(isRainning) {
System.out.println("天下雨打伞");
}
}
@Test
public void testIfElse() {
boolean isRainning = false;
if(isRainning) {
System.out.println("天下雨打伞");
}else {
System.out.println("天晴晒被子");
}
}
}
2)switch语句(多分支) switch(num){ case 1: … case 2: … cae 3: … default: … }
package test;
import org.junit.Test;
public class TestSwitch {
@Test
public void testSwitch() {
int phone = 114;
switch(phone) {
case 110:
System.out.println("警察");
break;
case 120:
System.out.println("医生");
break;
case 119:
System.out.println("火警");
break;
case 114:
System.out.println("查号");
break;
default:
System.out.println("电话号码非法");
break;
}
}
@Test
public void season() {
int month = 9;
switch(month) {
case 3,4,5:
System.out.println("春季");
break;
case 6,7,8:
System.out.println("夏季");
break;
case 9,10,11:
System.out.println("秋季");
break;
case 12,1,2:
System.out.println("冬季");
break;
}
}
}
循环迭代 loop
1)for循环 for(int i=0; i<10; i++){ … }
package test;
import java.util.Arrays;
import org.junit.Test;
public class TestFor {
@Test
public void for09() {
for(int i=0; i<10; i++) {
System.out.print(i);
}
System.out.println();
for(int i=9; i>=0; i--) {
System.out.print(i);
}
}
@Test
public void forArray() {
int[] scores = {100,90,120,50,20};
System.out.println(scores);
System.out.println( Arrays.toString(scores) );
for(int i=0; i<scores.length; i++) {
System.out.print(scores[i]+", ");
}
System.out.println();
String[] s = {"语文","数学","英语"};
for(int i=0; i<s.length; i++) {
System.out.print(s[i]+"\t");
}
}
@Test
public void for2() {
int count = 0;
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
System.out.print(++count+"\t");
}
System.out.println("--------");
}
}
@Test
public void for99() {
for(int i=1; i<=9; i++) {
for(int j=1; j<=i; j++) {
System.out.print(i+"*"+j +"="+i*j+"\t");
}
System.out.println();
}
}
}
2)while循环 3)do-while循环
异常 exception
|