【测试学习】Junit5的简单使用

这篇具有很好参考价值的文章主要介绍了【测试学习】Junit5的简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

🌟需要知道:

🌟Junit学习

🌈1、常用的注解

🌈2、测试用例的执行顺序

🌈3、参数化

🌈4、断言

🌈5、测试套件


🌟需要知道:

问题1:Selenium与Junit之间的关系?

        就像雷锋和雷峰塔的关系,就是没关系。

问题2:为什么学习了Selenium之后还要学习Junit?

        Junit是针对java的一个单元测试框架,实际中通常是通过一个自动化测试框架搭配对应的一个单元测试框架来对测试用例进行管理。如果Selenium编写的自动化测试用例是灯,Junit就是控制灯怎么去亮,灯亮的颜色是什么颜色,灯亮的顺序是什么等。


🌟Junit学习

需要在Pom.xml文件中引入依赖:写在dependencies下面:

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite -->
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.9.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>

🌈1、常用的注解

之前的代码实现方式:在main函数中调用。现在可不可以不需要直接调用test01(),这就可以使用注解实现。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

案例1:@Test的使用:

(1)不需要main方法调用;

(2)表示注解的:@Test,@BeforeAll,@AfterAll,@BeforeEach,@AfterEach

(3)@Test是一个注解,表示当前的方法是一个测试用例;

(4)注意:返回值必须是void,是规定的;

(5)要执行两个测试用例,点class前面的那个箭头;如果点的是Test01前面的箭头,表示只执行这一个测试用例;

(6)Test01,Test02都是自定义的名字。

public class a01_JunitTest {
    @Test
    void Test01(){
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
    }

    @Test
    void Test02(){
        System.out.println("这是第二个测试用例");
    }
}

指向结果:先打开百度,再打印Test02中的语句。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试


案例2:@BeforeAll与@AfterAll:执行一次

(1)当前类里面所有的测试用例执行之前都会执行这个方法@BeforeAll;

(2)当前类里面所有的测试用例执行结束之后都会执行这个方法@AfterAll。

public class a02_BeforeAll {
    //1、当前类里面所有的测试用例执行之前都会执行这个方法
    @BeforeAll
    static void setUp(){
        System.out.println("开始执行@BeforeAll修饰的方法");
    }

    @Test
    void Test(){
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
    }

    //2、当前类里面所有的测试用例执行结束之后都会执行这个方法
    @AfterAll
    static void TearDown(){
        System.out.println("开始执行@AfterAll对应的方法");
    }
}

执行结果:

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试


案例3:@BeforeEach与@AfterEach

当前类里面有两个测试用例:

(1)AfterAll和BeforeAll会执行一次;不论有几个测试用例,都只执行一次;

(2)AfterEach和BeforeEach会分别执行两次;有几个测试用例执行几次。

1、在执行每个方法之前都会执行一下BeforeEach方法;

2、在每个方法执行之后都会执行AfterEach方法。

public class a03_BeforeEach {
    //1、在执行每个方法之前都会执行一下BeforeEach方法
    @BeforeEach
    void BeforeEachTest(){
        System.out.println("执行BeforeEach");
    }

    @Test
    void Test01(){
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
    }

    @Test
    void Test02(){
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.csdn.net/");
    }

    //2、在每个方法执行之后都会执行AfterEach方法
    @AfterEach
    void AfterEachTest(){
        System.out.println("执行AfterEach");
    }
}

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试


案例4:@Disabled

(1)有两个测试用例,只执行Test02,不执行Test01 ;

(2)在要忽略执行的方法前面写@Disabled。

public class a04_Disable {
    @Disabled
    @Test
    void Test01(){
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
    }

    @Test
    void Test02(){
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.csdn.net/");
    }
}

执行结果:

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

🌈2、测试用例的执行顺序

情况1:执行顺序12345

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 情况2:将Testt05放在最前面,执行顺序12345

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 方式1:按照执行顺序执行(搭配Order使用)

(1)在类前面加上注解@TestMethodOrder(MethodOrderer.OrderAnnotation.class);

(2)指定执行规则:在每个测试用例前面加上注解: @Order(顺序)。

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class a05_Test {
    @Order(1)
    @Test
    void Test05(){
        System.out.println("这是测试用例5");
    }

    @Order(5)
    @Test
    void Test01(){
        System.out.println("这是测试用例1");
    }

    @Order(4)
    @Test
    void Test02(){
        System.out.println("这是测试用例2");
    }

    @Order(3)
    @Test
    void Test03(){
        System.out.println("这是测试用例3");
    }

    @Order(2)
    @Test
    void Test04(){
        System.out.println("这是测试用例4");
    }
}

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

方式2:按照随机方式执行:(不常用)

在类前面加上@TestMethodOrder(MethodOrderer.Random.class)

@TestMethodOrder(MethodOrderer.Random.class)
public class a05_Test { 
    @Test
    void Test05(){
        System.out.println("这是测试用例5");
    }

    @Test
    void Test01(){
        System.out.println("这是测试用例1");
    }

    @Test
    void Test02(){
        System.out.println("这是测试用例2");
    }

    @Test
    void Test03(){
        System.out.println("这是测试用例3");
    }

    @Test
    void Test04(){
        System.out.println("这是测试用例4");
    }
}

执行结果是随机的: 【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

🌈3、参数化

错误演示:

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

1、单参数

(1)@ParameterizedTest进行参数的注册;

(2)单参数的形式:在前面写:@ValueSource:点进去源码观察可以是各种类型传递。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 代码演示:【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

2、多参数

        可以看出单参数的特点:如果要传递String,那么所有的参数都是String类型。但是如果我现在想要第一个参数是String,第二个参数是Int,那么就要使用多参数的形式了。

(1)csv参数传递

方式1:@CsvSource

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 当数据非常多的时候,我们一般采用第二种方式:

方式2:通过新建csv文件传递

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 如果要传递的csv文件中的内容:姓名为空的话,直接写为‘ ’即可。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 (2)在有些情况下,有些参数可能需要某些对应的方法来对参数进行处理,因此就有第二种方法,通过方法将参数处理,再传入测试用例中。简单使用如下:

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

🌈4、断言

在java中判断通过if-else来判断,这里我们通过断言来实现。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

🌈5、测试套件

        要解决的问题:现在有a01,a02,a03...a10一共10个class文件都要执行,正常操作是如果要执行a10,点击a10,执行a9,点击a9...以此类推。但是这样很麻烦,因此通过测试套件,一次性将所有的代码都执行。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 写法1:通过指定相应的class来执行

用法:【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

执行结果:

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

写法2:通过指定包来执行

用法:

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试

 执行结果:先执行包1中的a01,a02,然后执行包2中的a01。

【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试


【测试学习】Junit5的简单使用,测试学习,学习,junit,单元测试文章来源地址https://www.toymoban.com/news/detail-592564.html

到了这里,关于【测试学习】Junit5的简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在 Java 中使用JUnit5进行单元测试和自动化测试

    单元测试和自动化测试是现代软件开发过程中必不可少的环节,可以提高代码质量和开发效率。JUnit5是Java中流行的单元测试框架,本文将介绍如何在Java中使用JUnit5进行单元测试和自动化测试。 单元测试是一种测试方法,用于对软件系统中的最小可测试单元进行测试。这些单

    2024年02月05日
    浏览(53)
  • 单元测试框架——Junit5

    Junit是一个开源的用于Java语言的单元测试框架,也是Java方向使用最广泛的单元测试框架。 在pom.xml中引入Junit5相关依赖 @Test :表示一个方法/用例 BeforeEach :表示被注解的方法在其它所有方法执行前都要执行一遍,也就是说其它方法有3个它就要执行3遍 @BeforeAll :表示被注解的

    2024年02月11日
    浏览(43)
  • spring boot 单元测试JUnit5使用Mockito模拟Mock数据调用

    spring boot 单元测试JUnit5使用Mockito模拟Mock数据调用 好大一批新用法,大家静下心来好好看看吧 1. spring boot 使用 Mockito.when().thenReturn()模拟返回值 Mockito 是一种 Java mock 框架,他主要就是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值、模拟抛出异常…

    2024年02月15日
    浏览(55)
  • JUnit5-单元测试操作详解

    JUnit 5是JUnit测试框架的下一个主要版本,用于编写和运行单元测试。 与以前版本的 JUnit 不同,JUnit 5 由来自三个不同子项目的多个不同模块组成。 JUnit 5 =  JUnit 平台 +  JUnit Jupiter  +  JUnit Vintage JUnit 平台 是在 JVM 上启动测试框架的基础。它还定义了 TestEngine 用于开发在平台

    2024年04月10日
    浏览(51)
  • Junit5单元测试框架详解

    前面我们学习了Selenium自动化测试框架,但是有的时候测试用例会很多,我们需要一个工具来管理这些测试用例,而Junit就是一个很好的管理工具,简单点来说,Junit就是一个针对Java的单元测试框架; 目录 一. 关于Junit5 二. Junit使用 2.1 添加Maven依赖 2.2 注解 2.3 断言 2.4 套件

    2024年02月06日
    浏览(46)
  • spring boot 单元测试JUnit5使用断言Assertions和假定Assumptions、嵌套、参数测试

    spring boot 单元测试JUnit5使用断言Assertions和假定Assumptions、嵌套、参数测试 本文基于spirng boot 2.7.11, 大家注意自己的版本 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库 SpringBoot 2.4 以上版本移除了默认对 Vintage 的依赖 源码地址:https://gitcode.net/qq_39339588/springboot.git 1.

    2024年02月11日
    浏览(47)
  • Junit5+Mockito单元测试详解

    1.宏观层面:AIR原则 A:Automatic(自动化) 全自动执行,输出结果无需人工检查,而是通过断言验证。 I:Independent(独立性) 分层测试,各层之间不相互依赖。 R:Repeatable(可重复) 可重复执行,不受外部环境( 网络、服务、中间件等)影响。 2.微观层面:BCDE原则 B: Bord

    2024年01月17日
    浏览(45)
  • springboot项目使用Junit5 + mockito + jacoco 实现单元测试以及代码覆盖率检查

    在创建springboot项目时会默认添加spring-boot-starter-test依赖,其中已经包含了junit、mockito依赖,根据springboot版本的不同junit和mockito的版本也会有所不同 先说一下各自功能: junit只说一点,junt4和junit5的注解不同,使用方式略有差异,其他不赘述了,基本用法都懂。 mockito是mock的

    2023年04月23日
    浏览(55)
  • SpringBoot2---单元测试(Junit5)(1)

    org.junit.vintage junit-vintage-engine test org.hamcrest hamcrest-core org.springframework.boot spring-boot-starter-test test 现在版本: @SpringBootTest class Boot05WebAdminApplicationTests { @Test void contextLoads() { } } 以前: @SpringBootTest + @RunWith(SpringRunner.class) SpringBoot整合Junit以后。 编写测试方法:@Test标注(注意需要

    2024年04月29日
    浏览(42)
  • 静态方法 单元测试 springboot+mokito+junit5

    CodecUtils的方法是静态类,使用@InjectMocks不能有用,因为这个注解只能用于非静态的对象。 想要为静态方法写单元测试,可以使用Mockito.mockStatic(Class classToMock)方法,它可以返回一个MockedStatic对象,用于模拟静态方法的调用。 1.导入依赖 2.单元测试 可以参考如下地址,了解如何

    2024年04月25日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包