Junit的导包及单元测试

一、导Junit4的jar包

1、右键项目->properties->Java Bulid Path->Libraries->Add Libraries
Junit的导包及单元测试_第1张图片
2、选择Junit,->Next
Junit的导包及单元测试_第2张图片
3、选择Junit4,点击Finish
Junit的导包及单元测试_第3张图片
4、这时已经有Junit4了,点击Apply and Close
Junit的导包及单元测试_第4张图片
5、项目已经有Junit4 的jar包了
在这里插入图片描述

二、测试

例子:测试com.ts.bean 下的ReadData.java
Junit的导包及单元测试_第5张图片
ReadData.java的内容:

package com.ts.bean;

/**
 * 读取io数据
 * @author 汐子
 */
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

import com.ts.model.LeavingMessage;

public class ReadData {
	public static String readStudent1(String path) {
		File br = new File(path);
		FileReader fileReader = null;
		char[] btuffer = new char[1024];
		StringBuffer data = new StringBuffer();
		try {
			fileReader = new FileReader(br);
			int len = 0;
			while ((len = fileReader.read(btuffer)) != -1) {
				data.append(btuffer, 0, len);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			data  = null;
			e.printStackTrace();
		}finally {
			if (fileReader != null) {
				try {
					fileReader.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		if (data != null) {
			return new String(data);
		}
		return null;
	}
}

生成测试类:

右键要测试的类-> new ->other->搜索Junit,选择Junit Test Case,点击next
Junit的导包及单元测试_第6张图片
点击next
Junit的导包及单元测试_第7张图片
选择要测试的方法,然后点击Finish
Junit的导包及单元测试_第8张图片
补充要实现的东西后,TestReadData.java 内容为:

package com.ts.bean.test;

import org.junit.Test;

import com.ts.bean.ReadData;

public class TestReadData {
	@Test
	public void testReadStudent() {
		String data = ReadData.readStudent1("E:\\eclipse-jee-2019-06-R-win32-x86_64\\TeacherSystem\\src\\files\\Contact.txt");//文件路径
		System.out.println(data.length());
	}
}

右键测试类->Run As ->Junit Test,出现下面的情况即为正确运行
Junit的导包及单元测试_第9张图片

解释图片:JunitTest结果有Runs,Errors和Failures三个显示状态。

Runs显示的是运行的测试用例数量

Failure指的是预期的结果与实际运行单元的结果不同所导致,例如当您使用assertEquals()或其它assertXXX()方法断言失败时,就会回报Failure,这时候您要检查您的单元方法中的逻辑设计是否有误。

Failure一般由单元测试使用的断言方法判断失败所引起的,这就表示测试点发现了问题,就是说程序输出的结果和我们预期的不一样。

Error指的是程序没有考虑到的情况,在断言之前程式就因为某种错误引发例外而终止,例如在单元中存取某个阵列,因为存取超出索引而引发。Error是由异常引起的,它可以产生与测试代码本身的错误,也可以是被测试代码中的一个隐藏的bug。

Junit需要注意的东西:

1、Junit测试前要确保导入了JUnit所需要的jar包(junit-4.12.jar和hamcrest-core-1.3.jar);
2、被JUnit注解修饰的函数必须是用public修饰
3、被JUnit注解修饰的函数的返回值必须为void;
4、被JUnit注解修饰的函数不能用static修饰;
5、被JUnit注解修饰的函数不能带有参数。
6、生成的测试类是半自动的

错误解决:

1、Junit测试出现Not yet implemented情况时:
在这里插入图片描述
在这里插入图片描述
是因为eclipse 生成的Junit Test Case的存根,它将使用添加测试方法fail(“Not yet implemented”)。如果忘记添加真实的实现,则测试结果就会报错,并且错误或断言错误显示尚未实现。

2、Junit测试时当有Class not found XXX情况出现时:
有效的解决方法:
Window->Preferences ->Java->Compiler->Building->Building Path Problems
Junit的导包及单元测试_第10张图片
如上图,将Incomplete build path:和Circular dependencies:的Error 改成 Warning
然后点击Apply and Close再次运行就成功了。

你可能感兴趣的:(项目资料,junit)