专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Junit4测试流程实例

Junit4测试流程实例

更新时间:2020-12-01 17:42:11 来源:动力节点 浏览1083次

JUnit是一个Java语言的单元测试框架。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。Junit实际上是一套框架,继承TestCase类,就可以用Junit进行自动测试了。JUnit众多版本中比较好用的是Junit4,Junit4测试往往也十分便捷。


Junit4是在极限编程和重构(refactor)中被极力推荐使用的工具,因为在实现自动单元测试的情况下可以大大的提高开发的效率,因此Junit4测试往往成为众多测试人员的首选。下面我们来看看Junit4测试流程实例。


1.创建待测试类

首先创建一个项目叫Junit_Test,我们编写一个Calculator类。这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。

该类代码如下:

package calculate;

public class Calculator {

private static int result;// 静态变量 用于存储运行结果

public void add(int n) {

result = result + n;

}

 

public void substance(int n) {

result = result - 1;// bug }

 

public void multiple(int n) {

result = result * n;

}

 

public void divide(int n) {

result = result / n;

}

 

public void square(int n) {

result = n * n;

}

public void sqrt(int n){

for(;;)

;//bug 死循环 }

public void clear() {

result = 0;

}

 

public int getResult() {

return result;

}}


2.在eclipse中为项目添加Junit环境

右键Junit_Test项目,在build path中“add library”,添加Junit,如下图所示。

image.png

image.png 

 

3.创建测试类

右键Calculator类,选择“new”,创建Junit test case

使用@Test标签标注测试方法

在Junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before来标识,释放资源的方法通过@After来标识。


4.修改测试用例代码

测试用例代码如下:

/** *  */package calculate;

import static org.junit.Assert.*;

import org.junit.Before;import org.junit.Test;

public class CalculatorTest {

private static Calculator ca = new Calculator();

// 复原操作 表明对每个TEST方法测试以后都会进行这个操作 @Before

public void setUp() throws Exception {

ca.clear();// 结果清零 }

 

@Test

public void testAdd() {

// fail("Not yet implemented");  ca.add(2);

ca.add(3);

assertEquals(5, ca.getResult());

}

 

@Test

public void testSubstance() {

// fail("Not yet implemented");  ca.add(10);

ca.substance(5);

assertEquals(5, ca.getResult());

}

 

@Test

public void testMultiple() {

// fail("Not yet implemented");  ca.add(4);

ca.multiple(2);

assertEquals(8, ca.getResult());

}

 

@Test(timeout = 1000) 

public void testDivide() {

// fail("Not yet implemented");  ca.add(6);

ca.divide(3);

assertEquals(2, ca.getResult());

}

@Test(timeout = 1000)//timeout参数表明了你设定的时间,单位为毫秒,因此1000代表1s。 public void testsqrt(){

ca.sqrt(4);

assertEquals(2, ca.getResult());

}

@Test

public void square1() {

// fail("Not yet implemented");  ca.square(3);

assertEquals(9, ca.getResult());

}

@Test

public void square2() {

// fail("Not yet implemented");  ca.square(-3);

assertEquals(9, ca.getResult());

}

@Test

public void square3() {

// fail("Not yet implemented");  ca.square(0);

assertEquals(0, ca.getResult());

}

@Test

public void testClear() {

// fail("Not yet implemented");  assertEquals(0, ca.getResult());

}

//@test 注意大小写。 //测试异常 @Test(expected=ArithmeticException.class)

public void divideByZero(){

ca.divide(0);

}

}

运行结果如下:

image.png 

 

以上就是一个完整的Junit4测试实例,使用Junit4版本进行单元测试时,不用测试类继承TestCase父类,因为,Junit4全面引入了Annotation来执行我们编写的测试。Junit4引用了注解的方式,进行单元测试,这使得Junit4测试大大提高了测试效率。在本站的Tomcat服务器教程中还有更多的相关的对Web服务器进行测试的Junit4测试实例,感兴趣的小伙伴可以下载源码进行学习。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>