目录
单元测试的概念
Junit单元测试框架
Juint优点
Junit测试样例
单元测试常用注解
单元测试的概念
单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。
单元测试的原则是:
- 测试代码时,只考虑测试,不考虑内部实现;
- 数据尽量模拟现实,越靠近现实越好,
- 充分考虑数据的边界条件下·
- 对重点、复杂、核心代码、重点测试
- 利用AOP(面向切面编程),减少测试代码,避免无用功能
- 测试、功能开发相结合,有利于设计和代码重构
Junit单元测试框架
JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用JUnit编写单元测试。
此外,几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试,JUnit目前最新版本是5
Juint优点
- 可以书写一系列的测试方法,对项目所有的接口或者方法进行单元测试。
- 启动后,自动化测试,并判断执行结果, 不需要人为的干预。
- 只需要查看最后结果,就知道整个项目的方法接口是否通畅。
- 每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。
- 添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架都对JUnit 有相应的支持
Junit测试样例
步骤
1. 导入Junit jar包
2. 编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法。
3. 在测试方法上使用@Test注解:标注该方法是一个测试方法
4. Run 进行测试
代码示例:
主程序
/**
* @author Candice
*/
public class UserService {
public String loginName(String loginName, String passWord){
if("tong".equals(loginName) && "123456".equals(passWord)){
return "登陆成功";
}
else{
return "用户名错误or密码有问题";
}
}
public void selectName(){
System.out.println((10 / 2));
System.out.println("查询成功");
}
}
单元测试程序
import org.junit.Assert;
import org.junit.Test;
/**
* @author candice
*/
public class TestUserService {
@Test
public void testLoginName(){
UserService userService = new UserService();
String rs = userService.loginName("tong","123456");
// 进行预期结果的正确性测试: 断言
Assert.assertEquals("你的功能业务可能出现问题", "登陆成功", rs);
}
@Test
public void testSelectName(){
UserService u = new UserService();
u.selectName();
// 不需要断言,因为selectName 没有返回值 Assert.assertEquals("没问题",null,);
}
}
然后 run test文件
如果测试样例偶读通过了,那么
ok ,最简单的单元测试样例已经实现了。
单元测试常用注解
继续探索吧。