您的位置:首页 > 其它

Junit 单体测试

2016-05-13 16:33 363 查看
代码测试:

白盒测试:测试代码结构和逻辑(可见代码测试):黑盒测试:测试代码功能和性能(不可见代码测试)

白盒测试局限性:1、不可能测试所有代码。2 白盒测试难度比极高。

单体测试是一种白盒测试,测试代码功能模块 – 测试代码单个功能

junit 是java 的单体测试技术

1、编写junit 在工程引用junit 类库

2、编写单体测试用例

* 创建public void 无参数的方法 、在方法前添加@Test 注解

3、每个测试方法 相当于以前编写main 函数,每个测试方法可以单独执行

在使用junit进行测试当方法非常多,每个方法输出内容到控制台,人们无法通过人工进行检查

* 自动化结果检查 — 断言 Assert

断言原理:调用方法,调用方法前,准备测试数据、测试数据运行结果 —— 比较实际结果与预期结果是否相同

编写单体测试时,不要仅测试正确的数据和结果,测试不正确数据(非法数据)

代码:

package com.qddx;

/*
* 编写加减乘数方法

* */
public class Calcultor {

public int add(int a, int b) {
return a + b;
}

public int sub(int a, int b) {
return a - b;
}

public int mul(int a, int b) {
return a * b;
}

public int div(int a, int b) {
if (b == 0) {
throw new RuntimeException("除数为零");
}
return a / b;
}
}


测试代码:

package com.qddx;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

//@ignore 可以忽略不想执行的方法。
public class CalcultorTest {
// 在每个测试方法前执行的代码
@Before
public void before() {
System.out.println("before...");
}

// 在每个测试代码后执行的代码
@After
public void after() {
System.out.println("after");
}

// 在整个测试类实例化之前只想一段代码
@BeforeClass
public static void befrClass() {
System.out.println("before....");
}

// 在整个类对象使用之后
@AfterClass
public static void afterClass() {
System.out.println("afterclass");
}

@Test
public void testAdd() {
// 方法进行测试
int a = 6;
int b = 9;
Calcultor c = new Calcultor();
int result = c.add(a, b);
System.out.println(result);
// 比较实际结果和语气结果的值
Assert.assertEquals(15, result);
}

@Test
public void testSub() {
int a = 6;
int b = 9;
Calcultor c = new Calcultor();
int result = c.sub(a, b);
System.out.println(result);
// 比较实际结果和预期结果的值 使用断言
Assert.assertEquals(-3, result);
}

@Test
public void testMul() {
int a = 6;
int b = 9;
Calcultor c = new Calcultor();
int result = c.mul(a, b);
System.out.println(result);
// 比较实际结果和语气结果的值
Assert.assertEquals(54, result);
}

@Test
public void testDiv() {
int a = 6;
int b = 2;
Calcultor c = new Calcultor();
int result = c.div(a, b);
System.out.println(result);
// 比较实际结果和语气结果的值
Assert.assertEquals(3, result);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: