码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java三方库-单元测试


    文章目录

    • Junit
      • 注解
      • 常用类
      • 无参数单测
      • 带参数的单测

    Junit

    主要版本有4和5版本,注解不太一样, 4迁移5参考官方文档

    主要记录下常用的一些操作

    其他复杂操作见官网

    https://junit.org/junit5/docs/current/user-guide/#overview-java-versions

    引入5.9.3版本依赖
    		<dependency>
                <groupId>org.junit.jupitergroupId>
                <artifactId>junit-jupiterartifactId>
                <version>5.9.3version>
                <scope>testscope>
            dependency>
    
    
    

    test包下使用

    注解

    @BeforeAll只执行一遍,在一个类里所有方法执行前执行
    @AfterAll只执行一遍,在一个类里所有方法执行后执行
    @BeforeEach每个方法执行前执行
    @AfterEach每个方法执行后执行
    @Test适用无返回值,无参数的方法,标记为单测
    @Disabled标识该方法不执行
    @DisplayName标识该单测方法别名
    @Order指定执行顺序
    @Nested放在类上,用来在一个测试类里嵌套测试类时使用
    @RepeatedTest()放在方法上,指定执行次数
    @ParameterizedTest指定带参数的方法
    @ValueSource和上面配合使用
    @Timeout指定超时时间

    常用类

    Assertions类   单纯判断结果是否符合预期
    Assumptions类  可以指定抛出信息
    

    无参数单测

    class StandardTests {
    
        @BeforeAll
        static void initAll() {
        }
    
        @BeforeEach
        void init() {
        }
    
        @Test
        void succeedingTest() {
        }
    
        @Test
        void failingTest() {
            fail("a failing test");
        }
    
        @Test
        @Disabled("for demonstration purposes")
        void skippedTest() {
            // not executed
        }
    
        @Test
        void abortedTest() {
            assumeTrue("abc".contains("Z"));
            fail("test should have been aborted");
        }
    
        @AfterEach
        void tearDown() {
        }
    
        @AfterAll
        static void tearDownAll() {
        }
    
    }
    

    带参数的单测

    1.基本参数类型

    @ParameterizedTest
    @ValueSource(strings = { "racecar", "radar", "able was I ere I saw elba" })
    void palindromes(String candidate) {
        assertTrue(StringUtils.isPalindrome(candidate));
    }
    

    2.方法入参

    @ParameterizedTest
    @MethodSource("stringProvider")
    void testWithExplicitLocalMethodSource(String argument) {
        assertNotNull(argument);
    }
    
    static Stream<String> stringProvider() {
        return Stream.of("apple", "banana");
    }
    
  • 相关阅读:
    Oracle数据库经纬度坐标查询优化与结果错误原因分析、SQL中WKT超长文本字符串处理
    【Linux】软硬链接与动静态库(理解软硬链接的特点及使用场景、如何建立动静态库与使用第三方库)
    【数据结构】—堆排序以及TOP-K问题究极详解(含C语言实现)
    5.14.1.2 Get Log Page – Smart Log
    Redis应用(8)——Redis的项目应用:结合SpringBoot如何在Redis里面存对象 & RedisUtil工具类的封装 & 遇到的问题
    Ubuntu设置SSH
    序列化和反序列化
    anchor box --学习笔记
    QTreeWidget样式qss
    【AI】Python 实现 KNN 手写数字识别
  • 原文地址:https://blog.csdn.net/qq_42936379/article/details/140026961
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号