当前位置: 首页 > news >正文

java单元测试

版本区别

特性Junit 4Junit 5
在当前类的所有测试方法之前执行。注解在静态方法上。此方法可以包含一些初始化代码。@BeforeClass@BeforeAll
在当前类中的所有测试方法之后执行。注解在静态方法上。此方法可以包含一些清理代码。@AfterClass@AfterAll
在每个测试方法之前执行。注解在非静态方法上。可以重新初始化测试方法所需要使用的类的某些属性。@Before@BeforeEach
在每个测试方法之后执行。注解在非静态方法上。可以回滚测试方法引起的数据库修改。@After@AfterEach

测试注解的作用

@RunWith(SpringRunner.class)
@org.springframework.boot.test.context.SpringBootTest
@ContextConfiguration(classes = MyCommunityApplication.class)
public class SpringBootTest {@Autowiredprivate DiscussPostService discussPostService;private DiscussPost data;@BeforeClasspublic static void beforeAll() {System.out.println("beforeClass");}@AfterClasspublic static void afterAll() {System.out.println("afterClass");}@Beforepublic void before() {System.out.println("before");}@Afterpublic void after() {System.out.println("after");}@Testpublic void test1(){System.out.println("test1");}@Testpublic void test2(){System.out.println("test2");}
}

执行test1,可以看到
在这里插入图片描述
打印的顺序是beforeClass、before、test1、after、afterClass,这也是。
一般单元测试是直接运行整个测试类,然后查看哪个测试方法有错误,如:
在这里插入图片描述
全部通过:
在这里插入图片描述

实际项目的样例

@RunWith(SpringRunner.class)
@org.springframework.boot.test.context.SpringBootTest
@ContextConfiguration(classes = MyCommunityApplication.class)
public class SpringBootTest {@Autowiredprivate DiscussPostService discussPostService;private DiscussPost data;@BeforeClasspublic static void beforeAll() {System.out.println("beforeClass");}@AfterClasspublic static void afterAll() {System.out.println("afterClass");}@Beforepublic void before() {System.out.println("before");// initializedata = new DiscussPost();data.setUserId(111);data.setId(287);data.setTitle("Test title");data.setContent("Test content");data.setCreateTime(new Date());discussPostService.addDiscussPost(data);System.out.println(data.getId());}@Afterpublic void after() {System.out.println("after");// deletediscussPostService.updateStatus(data.getId(), 2);}@Testpublic void testFindById(){DiscussPost discussPost = discussPostService.findDiscussPostById(data.getId());Assert.assertNotNull(discussPost);Assert.assertEquals(discussPost.getTitle(), data.getTitle());Assert.assertEquals(discussPost.getContent(), data.getContent());}@Testpublic void testUpdateScore() {int rows = discussPostService.updateScore(data.getId(), 2000.00);Assert.assertEquals(1, rows);DiscussPost post = discussPostService.findDiscussPostById(data.getId());Assert.assertEquals(2000.00, post.getScore(), 2);}
}

测试未通过:
在这里插入图片描述

http://www.lryc.cn/news/156253.html

相关文章:

  • 【LeetCode】双指针求解和为s的两个数字
  • opencv识别一张图片的多个红框,并截取红框的内容
  • 数据库-事务
  • MySQL 使用开源审计插件
  • Python入门教程 | Python3 集合(Set)
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0
  • 【C++模拟实现】反向迭代器的实现
  • Kubernetes技术--k8s核心技术持久化存储
  • 【80天学习完《深入理解计算机系统》】第十四天 复习第三章
  • 库中是如何实现string类的?
  • 无涯教程-JavaScript - WORKDAY.INTL函数
  • STM32--蓝牙
  • java 实现原型模式
  • maven本地安装jar包install-file,解决没有pom的问题
  • 【C++学习笔记】5、变量作用域
  • Python中的装饰器
  • 什么是RESTful API,Spring MVC如何支持RESTful架构
  • cin、cin.getline()、getline()的用法【C++】
  • 单向链表(c/c++)
  • 像linux 一样清理Windows C盘
  • 在Linux 下制作启动盘以及dd命令使用
  • C语言插入排序
  • SQL-DCL
  • Elasticsearch 中的向量搜索:设计背后的基本原理
  • Jquery会议室布局含门入口和投影位置调整,并自动截图
  • 高精度乘法模板(fft)
  • C# 现状简单说明
  • el-table滚动加载、懒加载(自定义指令)
  • 不关闭Tamper Protection(篡改保护)下强制卸载Windows Defender和安全中心所有组件
  • 从一到无穷大 #13 How does Lindorm TSDB solve the high cardinality problem?