• 浅谈java单元测试框架junit4/5


    0 前言

    junit是一个开源的Java语言的单元测试框架。目前junit主要有版本junit3,junit4junit5。因在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类TestCase,所以本文不再讨论junit3,只讨论使用比较多的junit4和junit5。

    0.1 特性

    1 基本用法

    1.1 常用注解介绍

    (1)@Test

    使用@Test注解测试方法。但测试方法必须是 public void。方法名一般为testXXX,通常需要见名知起义。

    (2)@BeforeClass和@AfterClass

    • @BeforeClass:会在测试类测试方法执行之前执行一次;
    • @AfterClass:会在测试内测试方法均执行完成后执行一次;

    注意,@BeforeClass和@AfterClass注解的方法必须是static方法。

    (3)@Before和@After

    • @Before:会在每个测试方法执行之前执行一次;
    • @After:会在每个测试方法执行之后执行一次;

    (4)@Parameters

    使用@Parameters注解数据源方法。

    (5)@Ignore

    使用@Ignore忽略测试方法,被该注解标识的测试方法会被忽略不执行。

    1.2 测试样例

    本文代码详情请见:https://github.com/X-NaN/studyjunit

    1. public class JunitAnnotationTest {
    2. /**
    3. * @BeforeClass 注解的必须是static方法
    4. */
    5. @BeforeClass
    6. public static void beforeClass() {
    7. System.out.println("@BeforeClass: 在该测试类内所有方法之前执行,只执行一次");
    8. }
    9. @Before
    10. public void beforeMethod() {
    11. System.out.println("@Before: 在每个测试方法之前执行一次");
    12. }
    13. @Test
    14. public void testCaseA() {
    15. System.out.println("@Test: 标识测试方法testCaseA");
    16. }
    17. @Test
    18. public void testCaseB() {
    19. System.out.println("@Test: 标识测试方法testCaseB");
    20. }
    21. /**
    22. * 异常测试
    23. */
    24. @Test(expected = ArithmeticException.class)
    25. public void testCaseException() {
    26. System.out.println("@Test: 标识测试方法testCaseException, 异常测试");
    27. System.out.println(1 / 0);
    28. }
    29. /**
    30. * 超时测试
    31. *
    32. * @throws InterruptedException
    33. */
    34. @Test(timeout = 1000)
    35. public void testCaseTimeOut() throws InterruptedException {
    36. System.out.println("@Test: 标识测试方法testCaseTimeOut,超时");
    37. // 若方法的超时时间超过timeout,则用例失败,否则成功
    38. Thread.sleep(1000);
    39. }
    40. @Ignore
    41. public void testCaseC() {
    42. System.out.println("@Ignore: 标识测试方法被忽略,不执行");
    43. }
    44. @After
    45. public void afterMethod() {
    46. System.out
  • 相关阅读:
    基于Spring Boot使用Java调用http请求的6种方式
    【跟小嘉学 Rust 编程】三十一、Rust的日志与追踪
    03 队列:迷宫的最短路径
    Kubesphere中DevOps流水线无法部署/部署失败
    重新安装电脑系统Win10步骤教程
    【project 】软件使用
    spark调优
    推荐一个拥有386万订阅者,10000多免费学习视频的频道
    nio 文件传输
    linux内核中听过就能记住的概念
  • 原文地址:https://blog.csdn.net/Nancy50/article/details/126938738