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)

posted @ 2015-08-28 10:54  Kinthon  阅读(224)  评论(0编辑  收藏  举报