• 单元测试 :Junit框架


    需要学习

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O2inbOw8-1668651406827)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116170735524-1026737199.png)]

    Junit框架

    1. 单元测试概述

    1.1 概述

    • 单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。

    1.2 目前测试方法是怎么进行的,存在什么问题

    1. 只有一个main方法,如果一个方法的测试失败了,其他方法测试会受到影响。
    2. 无法得到测试的结果报告,需要程序员自己去观察测试是否成功。
    3. 无法实现自动化测试。

    1.3 Junit单元测试框架

    • JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用JUnit编写单元测试。
    • 此外,几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试,JUnit目前最新版本是5。

    1.4 JUnit优点

    1. JUnit可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法。
    2. Junit可以生成全部方法的测试报告。
    3. 单元测试中的某个方法测试失败了,不会影响其他测试方法的测试。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqXGm7uy-1668651406828)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116171104002-26588399.png)]

    1.5 Junit单元测试是做什么的?

    测试类中方法的正确性的。

    2. 单元测试快速入门

    2.1 JUnit单元测试的实现过程是什么样的?

    1. 必须导入Junit框架的jar包。
    2. 定义的测试方法必须是无参数无返回值,且公开的方法。
    3. 测试方法使用@Test注解标记。

    2.2 JUnit测试某个方法,测试全部方法怎么处理?成功的标志是什么

    1. 测试某个方法直接右键该方法启动测试。
    2. 测试全部方法,可以选择类或者模块启动。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t1Z1BTWW-1668651406828)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116171312435-666249499.png)]

    2.3 代码演示

    @Test
        public void testLoginName() {
            UserService userService = new UserService();
            String rs = userService.LoginName("admin" , "123456");
    
            // 进行预期结果的正确性测试 :断言
            Assert.assertEquals("你的登陆业务可能出现问题" , "登陆成功" , rs);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    成功
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-atorC61o-1668651406987)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116171354562-208134870.png)]

    失败

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5i3jyTMl-1668651406828)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116171514143-1041678486.png)]

    3. 单元测试常用注解

    3.1 Junit常用注解(Junit 4.xxxx版本)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UHJtuoPv-1668651406829)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116171544391-655908280.png)]

    1. 开始执行的方法:初始化资源。
    2. 执行完之后的方法:释放资源。

    3.2 常用注解演示

    @Test : 测试方法

    @Test
        public void testLoginName() {
            UserService userService = new UserService();
            String rs = userService.LoginName("admin1" , "123456");
    
            // 进行预期结果的正确性测试 :断言
            Assert.assertEquals("你的登陆业务可能出现问题" , "登陆成功" , rs);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    @Before : 用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。

     @Before
        public void befor() {
            System.out.println("===bofor方法执行一次===");
        }
    
    • 1
    • 2
    • 3
    • 4

    @After : 用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。

    @After
        public void after() {
            System.out.println("after方法执行一次");
        }
    
    • 1
    • 2
    • 3
    • 4

    @BeforeClass : 用来静态修饰方法,该方法会在所有测试方法之前只执行一次。

    // 修饰静态方法
        @BeforeClass
        public static void beforeClass() {
            System.out.println("boforeClass方法执行一次");
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    @AfterClass : 用来静态修饰方法,该方法会在所有测试方法之后只执行一次

    @AfterClass
        public static void afterClass() {
            System.out.println("afterClass方法执行一次");
        }
    
    • 1
    • 2
    • 3
    • 4

    3.3 运行结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DVq5qmPW-1668651406829)(https://img2022.cnblogs.com/blog/2942345/202211/2942345-20221116172150472-1169292270.png)]

    afterClass() {
    System.out.println(“afterClass方法执行一次”);
    }

    
    ### 3.3 运行结果
    
    [外链图片转存中...(img-DVq5qmPW-1668651406829)]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    Linux下快速确定目标服务器支持哪些协议和密码套件
    性能测试:工具篇:Jmeter实时可视化平台搭建
    ArrayList底层结构和源码分析
    Java基础- 浅谈javac和javap
    C++ Reference: Standard C++ Library reference: C Library: cwchar: wcstof
    时隔六年,苹果超越vivo,再次成为中国市场最大智能手机厂商
    ES6 - promise 与 async / await【Promise 封装丐版 Ajax】
    本科毕业六年,疫情期间备战一个月,四面阿里巴巴定级P7
    新能源充电桩直流功率计量电表在中国香港充电桩项目中的应用
    SpringBoot实现多数据源(一)【普通版切换】
  • 原文地址:https://blog.csdn.net/qq_60740014/article/details/127898804