一、单元测试概述
1.1 单元测试
- 针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法
- 针对Java方法的测试,检查方法的正确性
1.2 单元测试框架Junit
- Junit是使用Java语言实现的单元测试框架
- 所有的IDE工具都集成了JUnit
- 优点
- JUnit可以灵活的选择执行那些测试方法,可以一键执行全部测试方法
- JUnit可以生成全部方法的测试报告
- 单元测试中的某个方法测试失败了,不会影响其他测试方法的测试
二、单元测试快速入门
- 需求:使用单元测试进行业务方法预期结果、正确性测试的快速入门
- 将Junit的jar包导入到项目中
- hamcrest-core
- junit
- 编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法
- 在测试方法上使用@Test注解:标注该方法是一个测试方法
- 在测试方法中完成被测试方法的预期正确性测试
- 选中测试方法,选择Junit运行
UserService.java
/**
* 业务方法
*/
public class UserService {
public String loginName(String loginName,String passWord){
if ("admin".equals(loginName) && "123456".equals(passWord)){
return "登陆成功";
}else {
return "登陆失败";
}
}
public void selectNames(){
System.out.println(10/0);
System.out.println("查询全部用户名成功");
}
}
TestUserService.java
/**
* 测试类
*/
public class TestUserService {
/**
* 测试方法:
* 1、无参数,无返回值
* 2、必须使用@Test注解标记
*/
@Test
public void testLoginName(){
UserService userService = new UserService();
String rs = userService.loginName("admin", "123456");
// 进行预期结果正确性测试:断言
Assert.assertEquals("您的登录业务可能出现问题","登陆成功",rs);
}
@Test
public void testSelectNames(){
UserService userService = new UserService();
userService.selectNames();
}
}
三、单元测试常用注解
3.1 Junit常用注解
- @Test:测试方法
- @Before:用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。
- @After:用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。
- @BeforeClass:用来修饰静态方法,该方法会在所有测试方法执行之前执行一次。
- @AfterClass:用来修饰静态方法,该方法会在所有测试方法执行之后执行一次。