Junit使用
Junit基本使用:
主要是通过写相关的测试,然后在通过元数据进行修饰(元数据就是描述数据的数据,类似于Java中的public.主要有Test,BeforeClass, Befoer, After, AfterClass,其生命周期
从 Junit 官方下载网站 https://github.com/KentBeck/junit/downloads 上下载 junit-4.9.zip.,
把下载到的文件解压缩出来。(路径最好不要有中文字符)。
为了验证环境是否配置正确,我们编写一个类,和一个测试类。
类:
public class calculator { private calculator() {} public static int Add(int firstValue, int secondValue) { return firstValue + secondValue; } public static int Sub(int firstValue, int secondValue) { return firstValue - secondValue; } public static int Mul(int firstValue, int secondValue) { return firstValue * secondValue; } public static int Div(int firstValue, int secondValue) { try { int result = firstValue / secondValue; return result; } catch(Exception e) { System.out.println("div zero"); } return 0; } }
测试类:
import static org.junit.Assert.*; import org.junit.Test; public class calculatorTest { @Test public void testAdd() { System.out.println("AddTest"); assertEquals(6, calculator.Add(4, 2)); } @Test public void testSub() { System.out.println("SubTest"); assertEquals(2, calculator.Sub(4, 2)); } @Test public void testMul() { System.out.println("MulTest"); assertEquals(8, calculator.Mul(4, 2)); } @Test public void testDiv() { System.out.println("DivTest"); assertEquals(2, calculator.Div(4, 2)); } }
把这两个文件放在同一个目录下。
使用如下命令运行:
@sser>javac –classpath .:junit-4.9.jar calculatorTest.java
@sser>java –classpath .:junit-4.9.jar –ea org.junit.runner.JUnitCore calculatorTest
可得到如下输出结果:
JUnit version 4.9
.
Time 0.007
OK(4 test)
我们可以看到运行正确,这也证明了我们的环境配置正确。
用junit进行参数化测试,主要是用到了Parameterized这个运行器
例子如下:
类
public class calculator2 { private int firstValue, secondValue; public calculator2(int first, int second) { this.firstValue = first; this.secondValue = second; } public int getFirst() { return firstValue; } public int getSecond() { return secondValue; } public int Add() { return firstValue + secondValue; } public int Sub() { return firstValue - secondValue; } public int Mul() { return firstValue * secondValue; } public int Div() { try { int result = firstValue / secondValue; return result; } catch(Exception e) { System.out.println("div zero"); } return 0; } }
测试类:
import java.util.Arrays; import java.util.Collection; import org.junit.Test; import static org.junit.Assert.*; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; //指定运行器org.junit.runners.Parameteized @RunWith(Parameterized.class) public class calculator2Test { private calculator2 cal; //用于保存传入的参数 private int firstValue, secondValue; //创建需要传入的参数对 @Parameters public static Collection perpareData() { Object[][] objdects = new Object[][] { {4, 3}, {2, 3}, {5, 5},{6, 7} }; return Arrays.asList(objdects); } //为测试类声明一个带有参数的公共构造函数,便于传入参数 public calculator2Test(int first, int second) { this.firstValue = first; this.secondValue = second; cal = new calculator2(firstValue, secondValue); } //编写测试 @Test public void testAdd() { int first = cal.getFirst(); int second = cal.getSecond(); assertEquals(first+second, cal.Add()); } }
把这两个文件放在同一个目录(目录下要有junit-4.9.jar)下。
使用如下命令运行:
@sser>javac –classpath .:junit-4.9.jar calculator2Test.java
@sser>java –classpath .:junit-4.9.jar –ea org.junit.runner.JUnitCore calculator2Test
(参数说明-classpath指定路径.:junit-4.9.jar指定了当前路径与当前路径下的junit-4.9,jar)