Junit单元测试
1.概念
单元测试是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。
2.Junit单元测试框架
Junit是使用Java语言实现的单元测试框架。
Junit优点
- 可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法。
- Junit可以生成全部方法的测试报告。
- 单元测试中某个方法测试失败了,不会影响其他测试方法的测试。
3.快速入门
- 将Junit的jar包导入到项目中。【IDEA已经自动集成了Junit框架,使用时只需要引入jar包即可】
- 编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法。
- 在测试方法上添加@Test注解:标注该方法是一个测试方法。
- 在测试方法中完成被测试方法的预期正确性方法。
- 选中测试方法,选择Junit运行,绿色代表测试良好,红色代表测试失败。
package com.huier.service;
public interface UserService {
String login(String username,String password);
}
public class UserServiceImpl implements UserService {
public String login(String username, String password) {
if("Huier".equals(username) && "123456".equals(password)){
return "登录成功!";
}else{
return "账号或密码错误!";
}
}
}import com.huier.service.UserService;
import com.huier.service.impl.UserServiceImpl;
import org.junit.Assert;
import org.junit.Test;//这里使用的是Junit 4的版本
//测试类
public class TestUserService {
//1.无参数
//2.无返回值
//3.@Test注解
@Test
public void TestLogin(){
UserService userService = new UserServiceImpl();
String username = "Huier";
String password = "123456";
String login = userService.login(username, password);
//如果有返回值可以进行预期结果的正确性测试,断言
Assert.assertEquals("您的登录业务可能出现问题","登录成功!",login);
}
}
注意点:1.无参数;2.无返回值;3.@Test
操作
测试单个方法,在方法上点击运行
测试所有方法,在类上点击运行
红色:失败;绿色:通过
4.常用注解[了解]
Junit4
- @Test:测试方法
- @Before:用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次
- @After:用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次
- @BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前只执行一次
- @AfterClass:用来静态修饰方法,该方法会在所有测试方法之后只执行一次
Junit5
- @Test:测试方法
- @BeforeEach:用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次
- @AfterEach:用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次
- @BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前只执行一次
- @AfterAll:用来静态修饰方法,该方法会在所有测试方法之后只执行一次