Junit 测试也是程序员测试,即所谓的白盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能
使用hamcrest断言时要导入hamcrest包,Junit的jar包也要手动引入,否则使用自带的JUnit包和手动导入的hamcrest包会报错。
被测试类Adder
package com.junit4;
public class Adder {
public int add(int a,int b) {
return a+b;
}
//重载
public int add(int a,int b,int c) {
return a+b+c;
}
}
1.新建JUnit Test Case
2.选择JUnit的版本、取名、选择被测试的类,下一步
3.选择被测试的方法
测试类AdderTest,要放在Test包中
package com.junit4.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Ignore;
import static org.hamcrest.Matchers.*;
import org.junit.Test;
import com.junit4.Adder;
/**
* TDD(Test-Driven Development)
* XP极限编程(Extreme Programming)
* Pair programming
* The test in the former
* 可以单个方法运行也可以一起运行
* 可以测试类的测试方法一起运行
* 也可以整个项目/包/文件的测试方法一起运行
* 可重用
* a.类放在test包中
* b.类名用**Test结尾
* c.方法用test**命名
* */
public class AdderTest {
@BeforeClass //每个测试对象初始化之前执行,所以必须设为类的静态方法,环境的初始化
public static void beforeClass() {
System.out.println("beforeClass");
}
@AfterClass //每个测试类结束后执行,资源的回收
public static void afterClass() {
System.out.println("afterClass");
}
@Before //每个@Test方法执行前执行
public void before() {
System.out.println("before");
}
@After //每个@Test方法执行后执行
public void after() {
System.out.println("after");
}
@Test
public void testAdd2() {
Adder a = new Adder();
int result = a.add(3, 5);
assertEquals(result, 8);
//新的断言
assertThat(result,is(8)); //Matcher参数需要hamcrest的jar包
assertThat(result, allOf(greaterThan(5),lessThan(9)));
}
//@Ignore //忽略该测试方法
@Test
public void testAdd3() {
Adder a = new Adder();
int result = a.add(1, 2, 3);
assertEquals(6, result);
}
}
/*
Failure:测试失败
Error:测试程序本身有错误
keeps the bar green to keep the code clean
*/
/*
beforeClass
before
after
before
after
afterClass
*/
相关阅读:
JUnit入门使用教程
https://www.cnblogs.com/ysocean/p/6889906.html