操作步驟
- IDEA建一個Maven工程
- 添加Junit依賴
- 編寫簡單類
- 生成測試類
- 查看測試結果
添加Junit依賴
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
本例用Junit 5進行單元測試
簡單類
public class Student {
/**
* id : 20171004024
* name : Vigilr
* Java : 99.0
* Python : 98.0
* JavaScript : 97.0
*/
private long id;
private String name;
private double Java;
private double Python;
private double JavaScript;
public Student() {
this.id=123456789;
this.name="張三";
this.Java=60.0;
this.Python=60.1;
this.JavaScript=59.9;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("Student{");
sb.append("id=").append(id);
sb.append(", name='").append(name).append('\'');
sb.append(", Java=").append(Java);
sb.append(", Python=").append(Python);
sb.append(", JavaScript=").append(JavaScript);
sb.append('}');
return sb.toString();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getJava() {
return Java;
}
public void setJava(double Java) {
this.Java = Java;
}
public double getPython() {
return Python;
}
public void setPython(double Python) {
this.Python = Python;
}
public double getJavaScript() {
return JavaScript;
}
public void setJavaScript(double JavaScript) {
this.JavaScript = JavaScript;
}
/**
* 計算學生成績總分
*
* @return double
* @since 2020/4/22
*/
public double sum() {
return this.Java + this.Python + this.JavaScript;
}
}
本類通過
GsonFormat
直接生成setter,getter方法,然後編寫構造方法和計算總成績方法。
測試類
快捷鍵Ctrl+Shift+T創建測試類
class StudentTest {
Student stu = null;
@BeforeEach
void setUp() {
stu = new Student();
System.out.println("開始單元測試");
}
@AfterEach
void tearDown() {
System.out.println("結束單元測試");
}
@Test
void getId() {
System.out.println("getId():" + stu.getId() + ",測試成功");
}
@Test
void setId() {
stu.setId(654321);
assertEquals( 654321,stu.getId(),"setId()方法異常");
System.out.println("setId()測試成功");
}
@Test
void getName() {
System.out.println("getName():" + stu.getName() + ",測試成功");
}
@Test
void setName() {
stu.setName("李四");
assertEquals(stu.getName(), "李四");
System.out.println("setName()測試成功");
}
@Test
void getJava() {
System.out.println("Java成績爲"+stu.getJava()+",測試成功");
}
@Test
void setJava() {
stu.setJava(99.9);
assertEquals(99.9,stu.getJava(),"setJava()方法異常");
System.out.println("setJava()測試成功");
}
@Test
void sum() {
assertEquals( 180,stu.sum(),"sum()方法異常");
System.out.println(stu);
System.out.println("張三總分爲180,sum()測試成功");
}
}
測試結果
測試成功的結果:
測試失敗的結果:
Junit 5總結
註解
@BeforeAll
只執行一次,在所有測試和 @BeforeEach 註解方法之前。
@BeforeEach
在每個單元測試執行之前執行。
@Test
進行單元測試
@AfterEach
在每個單元測試執行之後執行。
@AfterAll
只執行一次,最後執行
斷言
基本用法:assertEquals(預期結果,實際測試結果,報錯信息)