【单元测试】jUnit框架
POM配置
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
Java Test类结构
Class XXXTest{ @Test Public void should_预期_when_条件() // should_return 3_when_input_xxx_and_xxx { Assert.assertXXX; } }
基础注解
用例执行顺序 @FixMethodOrder,取值JVM(代码定义顺序)、NAME_ASCEDING(方法字母顺序)、DEFAULT(不可预期顺序)
基础断言
高级断言 AssertThat
异常测试
@Test(expected = NullPointerException.class)
测试套
其他注解:
@Ignore:忽略某些用例测试(一般要写上注释原因)
@Test(timeout = 2) 单位毫秒,测试执行效率,超时参数,适用于单个方法
参数化测试 @RunWith(Parameterized.class)
场景:使用不同的值反复运行相同的测试
1、@RunWith(Parameterized.class) 注释测试类
2、创建使用@Parameter的公共静态方法,返回集合作为测试数据集
3、创建构造函数或使用@Parameter来接收测试数据内容
Junit5 vs Junit4
参考:https://www.baeldung.com/junit-5-migration
- 注解变化 Before/After -> xxEach/xxAll
- no longer use @Test annotation for specifying expectations.
- Write assertion messages in a lambda in JUnit 5, allowing the lazy evaluation to skip complex message construction until needed:
- @RunWith -> @ExtendWith
In JUnit 5, the @RunWith annotation has been replaced by the more powerful @ExtendWith annotation. However, the @RunWith annotation can still be used in JUnit 5 for the sake of backward compatibility.
分类:
【0-基础】CleanCode
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)