JUnit基础使用
在开始前我们先来了解如何将Junit4包导入到工程内,新建完project类后操作如下:
在整个Learn工程上点击鼠标右键选择Build path 选项中的 Configure Build Path
完成后出现以下页面后点击页面右侧Add Library选项
出现如下界面后,选择JUnit后,单击next,选择JUnit 4 后完成添加。
添加完成后点击OK即可
三角形实验举例
三角形类(Triangle)对三角形形状判断,如非三角形(Illegal)、一般三角形(Scalene)、等腰三角形(Isosceles) 、等边三角形(Regular),借助JUnit工具,编写源代码和测试代码。
Triangle类代码如下:
package test;
public class Triangle {
protected long lbordera=0;
protected long lborderb=0;
protected long lborderc=0;
//构造函数
Triangle(long lbordera, long lborderb, long lborderc){
this.lbordera = lbordera;
this.lborderb = lborderb;
this.lborderc = lborderc;
}
//检测是否三角形
public boolean isTriangle(){
boolean flag = false;
if((this.lbordera > 0 && this.lbordera < Long.MAX_VALUE) &&
(this.lborderb > 0 && this.lborderb < Long.MAX_VALUE) &&
(this.lborderc > 0 && this.lborderc < Long.MAX_VALUE)){
if((diffofBorders(this.lbordera, this.lborderb) < this.lborderc) &&
(diffofBorders(this.lbordera, this.lborderc) < this.lborderb) &&
(diffofBorders(this.lborderb, this.lborderc) < this.lbordera)){
flag = true;
}
}
return flag;
}
/*检测是否三角形形状,返回:Illegal、Scalene、Isosceles 、Regular*/
public String getType(){
String flag = "Illegal";
if(isTriangle()){
if((this.lbordera == this.lborderb) &&
(this.lborderb == this.lborderc)){
flag = "Regular";
}else if((this.lbordera != this.lborderb) &&
(this.lbordera != this.lborderc) &&
(this.lborderb != this.lborderc)){
flag = "Scalene";
}else{
flag = "Isosceles";
}
}
return flag;
}
//计算两边之差
public long diffofBorders(long a,long b){
return (a > b)?(a-b):(b-a);
}
}
代码编写完成后,在Triangle 类上新建一个JUnit Test Case类对我们编写的代码进行简单测试。
点击完成后出现如下页面
点击next后
选择我们想要测试的方法后点击Finish完成,为什么不选择构造函数Triangle和计算diffofBorders方法,原因是我们在创建实例化对象时就会调用到构造函数,在测试选中的两个方法中,我们同样调用到了计算方法,所以我们不需要额外的测试。
TriangleTest 类初始代码如下:
package test;
import static org.junit.Assert.*;
import org.junit.Test;
public class TriangleTest {
@Test
public void testIsTriangle() {
fail("Not yet implemented");
}
@Test
public void testGetType() {
fail("Not yet implemented");
}
}
我们将其中的代码更改为:
package test;
import static org.junit.Assert.*;
import org.junit.Test;
public class TriangleTest {
@Test
public void testIsTriangle1() {
Triangle t1 = new Triangle(6, 6, 6);
assertTrue(t1.isTriangle());
}
@Test
public void testIsTriangle2(){
Triangle t2 = new Triangle(3, 4, 5);
assertTrue(t2.isTriangle());
}
@Test
public void testGetType1() {
Triangle t3 = new Triangle(6, 6, 6);
assertEquals("Regular",t3.getType());
}
@Test
public void testGetType2(){
Triangle t4 = new Triangle(5, 6, 6);
assertEquals("Isosceles",t4.getType());
}
}
至此实验完成。