网站首页 > java教程 正文
概述
单元
- 单元指的就是类
作用
- 对类中方法的预期结果,或者正确性进行测试。
- 可以实现某种程序的自动化测试(一次编写,一只可以用,随时可以用)
优点
- JUnit 是一个 Java 编程语言的开放源代码的单元测试工具,JUnit 是一个非常重要的测试工具。
- JUnit可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法。
- Junit可以生成全部方法的测试报告,如果测试良好则是绿色;如果测试失败,则是红色。
- 单元测试中的某个方法测试失败了,不会影响其他测试方法的测试。
快速入门
①将JUnit的jar包导入到工程中
- IDEA通常整合好了Junit框架,一般不需要导入。
- 如果IDEA没有整合好,手工导入下面2个jar包到模块就可以了
②编写测试方法该测试方法必须是public、无参数、无返回值的非静态方法。
③在测试方法上使用@Test注解标注该方法是一个测试方法
④在测试方法中完成被测试方法的预期正确性测试。
⑤选中测试方法,右键通过JUnit运行该方法,观察结果
常用注解
/**
* 模拟一个登陆业务 给定账号admin 密码123456
* 调用login方法传入参数用户名和密码,如果与给定的账号和密码一致返回 “登陆成功”
* 如果传入的参数与给定的账号m和密码不一致返回 “用户名或密码错误”
*/
public class UserService {
public String login(String user, String passWord) {
if (user.equals("admin") && passWord.equals("123456")) {
return "登陆成功";
}
return "用户名或密码错误";
}
}
import org.junit.Assert;
import org.junit.Test;
public class UseServiceTest {
@Test
public void testLogin() {
UserService userService = new UserService();
String result = userService.login("admin", "123456");
//如果login方法的返回值与预期的值 “登陆成功” 不一致 会提示消息 “错误”
Assert.assertEquals("错误", "登陆成功", result);
System.out.println("代码没有问题哦");
}
}
在测试代码中我们给定正确的账户和密码可以看到执行结果是绿色的对号
如果在测试代码中给的账户名称与给定的不一致(模拟错误)
Junit常用注解(Junit 4.xxxx版本)
- 开始执行的方法:初始化资源
- 执行完之后的方法:释放资源
代码
import org.junit.*;
public class UseServiceTest {
private static UserService userService;
@BeforeClass
public static void beforeClass() {
userService = new UserService();
System.out.println("被BeforeClass标注的方法执行了哦!我只所有方法之前执行一次");
}
@AfterClass
public static void afterClass() {
System.out.println("被AfterClass标注的方法执行了哦!我只在所有方法之后执行一次");
}
@Before
public void before() {
System.out.println("被Before标注的方法执行了哦!每个方法执行之前我都会执行的哦");
}
@After
public void after() {
System.out.println("被After标注的方法执行了哦!每个方法执行完毕我都会执行");
}
@Test
public void testLogin() {
String result = userService.login("admin", "123456");
//如果login方法的返回值与预期的值 “登陆成功” 不一致 会提示消息 “错误”
Assert.assertEquals("错误", "登陆成功", result);
System.out.println("代码没有问题哦");
}
@Test
public void testLogin2() {
String result = userService.login("admin", "123456");
//如果login方法的返回值与预期的值 “登陆成功” 不一致 会提示消息 “错误”
Assert.assertEquals("错误", "登陆成功", result);
System.out.println("代码没有问题哦");
}
}
Junit常用注解(Junit* 5**.xxxx版本)
- 开始执行的方法:初始化资源
- 执行完之后的方法:释放资源
JUnit5中的注解使用方式与JUnit4中一样
猜你喜欢
- 2024-10-05 单元测试-(单元测试能发现约80的软件缺陷)
- 2024-10-05 Junit4入门之单元测试Junit介绍(junit4入门之单元测试junit介绍英文)
- 2024-10-05 五分钟技术趣谈 | Java常用的单元测试框架介绍
- 2024-10-05 「SpringBoot」 单元测试利器-Mockito
- 2024-10-05 如何使用Python进行单元测试(python单元测验答案)
- 2024-10-05 如何用TestNG进行java单元测试?(java中的test检测)
- 2024-10-05 干货篇-错过一次 错过一年!单元测试之Junit
- 2024-10-05 万字长文:一文详解单元测试干了什么
- 2024-10-05 一台不容错过的Java单元测试代码“永动机”
- 2024-10-05 新的单元测试工具已到位,Java程序员还不快来尝尝新?
你 发表评论:
欢迎- 最近发表
-
- 你真的会用 Java 中的线程池吗?多个企业级线程池工具类封装实践
- 线程池的实现原理、优点与风险、以及四种线程池实现
- Java线程池ThreadPoolExecutor实现原理剖析
- 深入分析线程池的实现原理(线程池是干嘛的)
- 一文搞懂JAVA线程池工作原理(java线程池的工作流程)
- Java线程池的工作原理(java线程池的实现原理)
- 5分钟读懂C#中TcpClient、TcpListener和Socket三个类的角色
- JVM对象的创建过程(jvm运行过程中创建的对象一般存放在方法区)
- 对象组成与Java内存模型JMM分析(java对象在内存中存储的结构)
- JVM对象内存分配详细过程(栈上分配->TLAB->老年代->Eden区)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)