精华内容
下载资源
问答
  • JUnit 5 This repository is the home of the next generation of JUnit, JUnit 5. Latest Releases General Availability (GA): JUnit 5.8.0 (September 12, 2021) Preview (Milestone/Release Candidate): n/a ...
  • The junit5-jupiter-starter-ant sample demonstrates the bare minimum configuration for getting started with JUnit Jupiter using the Ant build system. Jupiter on Gradle The junit5-jupiter-starter-...
  • junit5教程_JUnit5教程

    千次阅读 2020-07-12 11:44:52
    junit5教程 JUnit5教程 (JUnit5 Tutorial) In this Junit tutorial, we will introduce basics of JUnit5 and its new features using examples. In Java world, JUnit is one of the popular framework used to ...

    junit5教程

    JUnit5教程 (JUnit5 Tutorial)

    In this Junit tutorial, we will introduce basics of JUnit5 and its new features using examples. In Java world, JUnit is one of the popular framework used to implement unit tests against java code. JUnit primarily helps developers to test their code on the JVM by themselves.

    在本Junit教程中,我们将通过示例介绍JUnit5的基础知识及其新功能。 在Java世界中,JUnit是用于对Java代码实施单元测试的流行框架之一。 JUnit主要帮助开发人员自己在JVM上测试其代码。

    JUnit5架构 (JUnit5 Architecture)

    JUnit平台 (JUnit Platform)

    • Launches testing frameworks on the JVM

      在JVM上启动测试框架
    • Has TestEngine API used to build a testing framework that runs on the JUnit platform

      使用TestEngine API来构建在JUnit平台上运行的测试框架

    JUnit木星 (JUnit Jupiter)

    • Blend of new programming model for writing tests and extension model for extensions

      混合了用于编写测试的新编程模型和用于扩展的扩展模型
    • Addition of new annotations like @BeforeEach, @AfterEach, @AfterAll, @BeforeAll etc.

      添加新的注释,例如@BeforeEach@AfterEach@AfterAll@BeforeAll等。

    JUnit复古 (JUnit Vintage)

    • Provides support to execute previous JUnit version 3 and 4 tests on this new platform

      提供支持以在此新平台上执行以前的JUnit版本3和4测试

    JUnit Maven依赖关系 (JUnit Maven Dependencies)

    To implement JUnit5 based test cases in a project, add the following dependency to the pom.xml file of the project:

    要在项目中实现基于JUnit5的测试用例,请将以下依赖项添加到项目的pom.xml文件中:

    • JUnit 5 Library

      JUnit 5库
    <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-engine</artifactId>
         <version>5.1.1</version>
         <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.junit.platform</groupId>
         <artifactId>junit-platform-runner</artifactId>
         <version> 1.1.1</version>
         <scope>test</scope>
    </dependency>
    • JUnit5 maven surefire provider to execute the unit tests where IDE does not have JUnit5 support (if IDE has support then this point is not required)

      JUnit5 maven surefire提供程序在IDE不支持JUnit5的情况下执行单元测试(如果IDE支持,则不需要这一点)
    • <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.19.1</version>
           <dependencies>
                <dependency>
                     <groupId>org.junit.platform</groupId>
                     <artifactId>junit-platform-surefire-provider</artifactId>
                     <version>1.0.2</version>
                </dependency>
           </dependencies>
      </plugin>

      JUnit5的新功能 (JUnit5 New Features)

      It requires Java 8 or higher at runtime. But one can still test code which is compiled using previous Java versions. There are various new features got introduced in it.

      运行时需要Java 8或更高版本。 但是仍然可以测试使用以前的Java版本编译的代码。 其中引入了各种新功能。

      JUnit注释 (JUnit Annotations)

      Listed below are some commonly used annotations provided in it:

      下面列出了其中提供的一些常用注释:

      AnnotationDescription
      @Test Denotes a test method
      @DisplayName Declares a custom display name for the test class or test method
      @BeforeEach Denotes that the annotated method should be executed before each test method
      @AfterEach Denotes that the annotated method should be executed after each test method
      @BeforeAll Denotes that the annotated method should be executed before all test methods
      @AfterAll Denotes that the annotated method should be executed after all test methods
      @Disable Used to disable a test class or test method
      @Nested Denotes that the annotated class is a nested, non-static test class
      @Tag Declare tags for filtering tests
      @ExtendWith Register custom extensions
      注解 描述
      @测试 表示测试方法
      @显示名称 声明测试类或测试方法的自定义显示名称
      @BeforeEach 表示带注释的方法应在每个测试方法之前执行
      @AfterEach 表示带注释的方法应在每个测试方法之后执行
      @BeforeAll 表示带注释的方法应在所有测试方法之前执行
      @毕竟 表示带注释的方法应在所有测试方法之后执行
      @禁用 用于禁用测试类或测试方法
      @嵌套 表示带注释的类是嵌套的非静态测试类
      @标签 声明标签以过滤测试
      @ExtendWith 注册自定义扩展
      package com.journaldev;
      
      import org.junit.jupiter.api.AfterAll;
      import org.junit.jupiter.api.AfterEach;
      import org.junit.jupiter.api.BeforeAll;
      import org.junit.jupiter.api.BeforeEach;
      import org.junit.jupiter.api.Disabled;
      import org.junit.jupiter.api.DisplayName;
      import org.junit.jupiter.api.Test;
      
      public class JUnit5Sample1Test {
      
        @BeforeAll
        static void beforeAll() {
          System.out.println("**--- Executed once before all test methods in this class ---**");
        }
      
        @BeforeEach
        void beforeEach() {
          System.out.println("**--- Executed before each test method in this class ---**");
        }
      
        @Test
        void testMethod1() {
          System.out.println("**--- Test method1 executed ---**");
        }
      
        @DisplayName("Test method2 with condition")
        @Test
        void testMethod2() {
          System.out.println("**--- Test method2 executed ---**");
        }
      
        @Test
        @Disabled("implementation pending")
        void testMethod3() {
      	  System.out.println("**--- Test method3 executed ---**");
        }
      
        @AfterEach
        void afterEach() {
          System.out.println("**--- Executed after each test method in this class ---**");
        }
      
        @AfterAll
        static void afterAll() {
          System.out.println("**--- Executed once after all test methods in this class ---**");
        }
      
      
      }

      We can run above JUnit test class in Eclipse -> Run As -> JUnit Test.

      我们可以在Eclipse-> Run As-> JUnit Test中的 JUnit测试类之上运行

      JUnit断言 (JUnit Assertions)

      Every test method must be evaluated against condition to true using assertions so that the test can continue to execute. JUnit Jupiter assertions are kept in the org.junit.jupiter.api.Assertions class. All of the methods are static.

      必须使用断言将每个测试方法的条件评估为true,以便测试可以继续执行。 JUnit Jupiter断言保存在org.junit.jupiter.api.Assertions类中。 所有方法都是静态的。

      AssertionDescription
      assertEquals(expected, actual)Fails when expected does not equal actual
      assertFalse(expression)Fails when expression is not false
      assertNull(actual)Fails when actual is not null
      assertNotNull(actual)Fails when actual is null
      assertAll()Group many assertions and every assertion is executed even if one or more of them fails
      assertTrue(expression)Fails if expression is not true
      assertThrows()Class to be tested is expected to throw an exception
      断言 描述
      assertEquals(预期的,实际的) 预期不等于实际时失败
      assertFalse(表达式) 表达式不为假时失败
      assertNull(实际) 实际不为空时失败
      assertNotNull(实际) 当real为null时失败
      assertAll() 对许多断言进行分组,并且每个断言都会执行,即使其中一个或多个失败
      assertTrue(表达式) 如果表达式不正确则失败
      assertThrows() 预期要测试的类将引发异常
      @Test
      void testAssertEqual() {
      	 assertEquals("ABC", "ABC");
      	 assertEquals(20, 20, "optional assertion message");
      	 assertEquals(2 + 2, 4);
      }
      
      @Test
      void testAssertFalse() {
      	 assertFalse("FirstName".length() == 10);
      	 assertFalse(10 > 20, "assertion message");
      }
      
      @Test
      void testAssertNull() {
           String str1 = null;
      	 String str2 = "abc";
      	 assertNull(str1);
      	 assertNotNull(str2);	
      }
      
      @Test
      void testAssertAll() {
      	 String str1 = "abc";
      	 String str2 = "pqr";
      	 String str3 = "xyz";
      	 assertAll("numbers",
      	      () -> assertEquals(str1,"abc"),
      		  () -> assertEquals(str2,"pqr"),
      		  () -> assertEquals(str3,"xyz")
      	 );
      	 //uncomment below code and understand each assert execution
           /*assertAll("numbers",
      		  () -> assertEquals(str1,"abc"),
      		  () -> assertEquals(str2,"pqr1"),
      		  () -> assertEquals(str3,"xyz1")
      	 );*/
      }
      
      @Test
      void testAssertTrue() {
      	 assertTrue("FirstName".startsWith("F"));
      	 assertTrue(10  {
      	      throw new IllegalArgumentException("Illegal Argument Exception occured");
      	 });
      	 assertEquals("Illegal Argument Exception occured", exception.getMessage());
      }

      JUnit5导入 (JUnit5 Imports)

      Its test classes need org.junit.jupiter.api.Test import statement and not org.junit.Test. Also, the test methods need not be a public and local package.

      它的测试类需要org.junit.jupiter.api.Test导入语句,而不是org.junit.Test 。 同样,测试方法不必是公共和本地程序包。

      import org.junit.jupiter.api.Test;

      JUnit5假设 (JUnit5 Assumptions)

      Assumptions are static methods in the org.junit.jupiter.api.Assumptions class. They will execute a test only when the specified condition met otherwise test will be aborted. The aborted test will not cause build failure. When an assumption fails, org.opentest4j.TestAbortedException is thrown and the test is skipped.

      假设是org.junit.jupiter.api.Assumptions类中的静态方法。 他们仅在满足指定条件时执行测试,否则测试将中止。 中止的测试不会导致构建失败。 当假设失败时,将抛出org.opentest4j.TestAbortedException并跳过测试。

      AssumptionsDescription
      assumeTrueExecute the body of lamda when the positive condition hold else test will be skipped
      assumeFalseExecute the body of lamda when the negative condition hold else test will be skipped
      assumingThatPortion of the test method will execute if an assumption holds true and everything after the lambda will execute irrespective of the assumption in assumingThat() holds
      假设条件 描述
      假设是真的 当阳性条件成立时执行lamda主体,否则将跳过测试
      假设为假 负条件成立时执行lamda主体,否则将跳过测试
      假如说 如果假设成立,则测试方法的一部分将执行,并且lambda之后的所有内容都将执行,而与前提条件thatthat()成立的情况无关
      @Test
      void testAssumeTrue() {
           boolean b = 'A' == 'A';
           assumeTrue(b);
           assertEquals("Hello", "Hello");
      }
      
      @Test
      @DisplayName("test executes only on Saturday")
      public void testAssumeTrueSaturday() {
           LocalDateTime dt = LocalDateTime.now();
           assumeTrue(dt.getDayOfWeek().getValue() == 6);
           System.out.println("further code will execute only if above assumption holds true");
      }
      
      @Test
      void testAssumeFalse() {
           boolean b = 'A' != 'A';
           assumeFalse(b);
           assertEquals("Hello", "Hello");
      }
      
      @Test
      void testAssumeFalseEnvProp() {
           System.setProperty("env", "prod");
           assumeFalse("dev".equals(System.getProperty("env")));
           System.out.println("further code will execute only if above assumption hold");
      }
      
      @Test
      void testAssumingThat() {
           System.setProperty("env", "test");
           assumingThat("test".equals(System.getProperty("env")),
                () -> {
                     assertEquals(10, 10);
                     System.out.println("perform below assertions only on the test env");
                     });
      
           assertEquals(20, 20);
           System.out.println("perform below assertions on all env");
      }

      JUnit嵌套测试类 (JUnit Nested Test Classes)

      Nested tests allow to create nested classes and execute all of its test methods. The inner classes must be non-static. Just annotate inner classes with @Nested and all test methods inside it will be executed.

      嵌套测试允许创建嵌套类并执行其所有测试方法。 内部类必须是非静态的。 只需使用@Nested注释内部类,即可执行其中的所有测试方法。

      @BeforeAll
      static void beforeAll() {
           System.out.println("**--- JUnit5Sample4Test :: beforeAll :: Executed once before all test methods ---**");
      }
       
      @BeforeEach
      void beforeEach() {
      	 System.out.println("**--- JUnit5Sample4Test :: beforeEach :: Executed before each test method ---**");
      }
      
      @AfterEach
      void afterEach() {
      	 System.out.println("**--- JUnit5Sample4Test :: afterEach :: Executed after each test method ---**");
      }
      
      @AfterAll
      static void afterAll() {
      	 System.out.println("**--- JUnit5Sample4Test :: afterAll :: Executed after all test method ---**");
      }
       
           @Nested
           class InnerClass {
       
                @BeforeEach
                void beforeEach() {
                     System.out.println("**--- InnerClass :: beforeEach :: Executed before each test method ---**");
                }
       
                @AfterEach
                void afterEach() {
              	   System.out.println("**--- InnerClass :: afterEach :: Executed after each test method ---**");
                }
       
                @Test
                void testMethod1() {
              	   System.out.println("**--- InnerClass :: testMethod1 :: Executed test method1 ---**");
                }
       
                @Nested
                class InnerMostClass {
       
                     @BeforeEach
                     void beforeEach() {
                          System.out.println("**--- InnerMostClass :: beforeEach :: Executed before each test method ---**");
                     }
       
                     @AfterEach
                     void afterEach() {
                  	    System.out.println("**--- InnerMostClass :: afterEach :: Executed after each test method ---**");
                     }
       
                     @Test
                     void testMethod2() {
                  	    System.out.println("**--- InnerMostClass :: testMethod2 :: Executed test method2 ---**");
                     }
              }
          }

      JUnit测试异常 (JUnit Test Exception)

      There are situations in which methods are expected to throw an exception under a specific condition. assertThrows will fail the test if the given method does not throw the specified exception.

      在某些情况下,期望方法在特定条件下引发异常。 如果给定方法未引发指定的异常,则assertThrows将使测试失败。

      Throwable exception = assertThrows(IllegalArgumentException.class, () -> {
           throw new IllegalArgumentException("Illegal Argument Exception occured");
      });
      assertEquals("Illegal Argument Exception occured", exception.getMessage());

      JUnit测试执行 (JUnit Test Execution)

      The unit tests can be executed in many ways, two of the ways are as follows:

      单元测试可以通过多种方式执行,其中两种方式如下:

      • Use Eclipse IDE Oxygen.3a (4.7.3a) Release and open test file to be executed. Right-click on the file and choose option Runs As followed by JUnit Test

        使用Eclipse IDE Oxygen.3a(4.7.3a)发行并打开要执行的测试文件。 右键单击文件,然后选择选项Runs As,然后选择JUnit Test
      • Use mvn test command on Windows command prompt

        在Windows命令提示符下使用mvn test命令

      摘要 (Summary)

      We’ve explored JUnit5 and its new features with some examples. We also looked how we can use JUnit annotations, assertions, assumptions, exceptions and write nested test classes.

      我们通过一些示例探索了JUnit5及其新功能。 我们还研究了如何使用JUnit批注,断言,假设,异常并编写嵌套的测试类。

      GitHub Repository. GitHub Repository下载完整的示例项目。

      翻译自: https://www.journaldev.com/20834/junit5-tutorial

      junit5教程

    展开全文
  • 1. JUnit 5开发人员指南 2. GitHub存储库 3.重要的Java开发人员指南 Spring开发人员指南 Maven开发人员指南 4. JUnit 4与JUnit 5的备忘单 ... https://github.com/RameshMF/ebooks/blob/master/junit5-user-guide.pdf
  • android-junit5 一个Gradle插件,允许使用Android Gradle Plugin 3.5.0或更高版本在Android环境中执行测试。 如何? 该插件为项目的每个构建变体配置单元测试任务,以在JUnit Platform上运行。 此外,它附加到...
  • junit5.jar

    2018-11-14 16:43:27
    junit5.jar
  • junit5和junit4 2015年11月, JUnit Lambda团队展示了他们的原型 。 此后,该项目更名为JUnit 5,并于2016年2月发布了Alpha版本。我们将在一系列简短文章中进行探讨: 建立 基本 建筑 条件 注射 … ...

    junit5和junit4

    2015年11月, JUnit Lambda团队展示了他们的原型 。 此后,该项目更名为JUnit 5,并于2016年2月发布了Alpha版本。我们将在一系列简短文章中进行探讨:

    • 建立
    • 基本
    • 建筑
    • 条件
    • 注射

    本节讨论JUnit 5的设置,以便您可以针对新API编写代码并在IDE或构建工具中运行测试。

    总览

    在新兴的《 JUnit 5用户指南》中可以找到您将在此处阅读的更多内容以及更多内容。 请注意,它基于Alpha版本,因此可能会发生变化。

    确实,我们鼓励我们提出问题或提出请求,以便JUnit 5可以进一步改进。 请利用这个机会! 这是帮助JUnit帮助我们的机会。

    如有必要,此帖子将得到更新。 我在这里显示的代码示例可以在Github上找到。

    写作测试

    junit5-api工件中包含用于编写测试的API。 编写测试只需要使用您喜欢的构建工具将其包含在项目中即可。

    • 群组ID :org.junit5
    • 工件ID :junit5-api
    • 版本 :5.0.0-ALPHA

    要处理一些事情,让我们快速创建第一个测试

    HelloWorldTest.java

    package org.codefx.demo.junit5;
     
    import org.junit.gen5.api.Test;
     
    class HelloWorldTest {
     
    	@Test
    	void helloJUnit5() {
    		System.out.println("Hello, JUnit 5.");
    	}
     
    }

    见妈,不公开! 酷吧? 我现在不会讨论它,但是下一篇文章将讨论这个(以及其他基础知识),所以请继续关注。

    运行测试

    随着JUnit 5的不断发展,缺乏对本机工具的支持。 但是有一些准备工作可以使一切正常运行。

    JUnit 4运行器

    测试运行称为JUnit5可以用来作为JUnit 4运行的一部分来运行新的测试。 您将在其自己的工件中找到它,您必须将其添加到项目中:

    • 群组ID :org.junit5
    • 工件ID :junit4-runner
    • 版本 :5.0.0-ALPHA

    运行程序将调用实际运行JUnit 5测试的引擎。 引擎还具有自己的工件,您必须添加以下工件:

    • 群组ID :org.junit5
    • 工件ID :junit5-engine
    • 版本 :5.0.0-ALPHA

    要运行项目中的所有测试,最简单的为它们创建测试套件的方法是:

    package org.codefx.demo.junit5;
     
    import org.junit.gen5.junit4.runner.JUnit5;
    import org.junit.gen5.junit4.runner.Packages;
    import org.junit.runner.RunWith;
     
    @RunWith(JUnit5.class)
    @Packages({ "org.codefx.demo.junit5" })
    public class TestWithJUnit5 { }

    注意,该类必须是常规的JUnit 4测试类,即,它必须遵守通用的命名约定,并且必须是公共的。 @ Packages-annotation将包解释为层次结构,因此它将在所有以org.codefx.demo.junit5为前缀的包中运行所有测试。 如果愿意,可以直接在JUnit 5测试类上使用相同的运行器。 在这种情况下,它们必须是公开的。

    现在我们完成了! 您最喜欢的IDE和构建工具将愉快地运行带有@RunWith(JUnit5.class)注释的类,从而运行新的JUnit 5测试。

    在真正的JUnit 5支持出现之前,某些功能可能无法使用,例如,IDE将无法运行单独的测试方法。 但是暂时我发现这是最简单,最独立于工具的解决方案。

    生成工具支持

    JUnit团队已经在努力实现对JUnit 5的构建工具支持,即不通过JUnit 4绕道而行。基本的Gradle插件和Maven Surefire提供程序已启动并正在运行。 计划将这两个项目在某个时候移交给各自的社区。

    两者都有示例项目( GradleMaven )。 有关更多详细信息,请参阅用户指南

    命令行的胜利!

    如果这一切对您来说太花哨了,请尝试console console ,它可以让您直接从命令行运行测试。 要获取它,您可以下载此ZIP

    不幸的是它不能开箱即用 。 我不得不将上述的junit5-api和junit5-engine工件放到lib中,然后在bin中的脚本中将类路径定义编辑为CLASSPATH = $ APP_HOME / lib / *,以使其工作。

    忽略其他依赖项(例如,在其他测试库上),可以按以下方式使用它:

    使用junit控制台

    # run all tests
    junit-console -p ${path_to_compiled_test_classes} -a
    # run a specific test
    junit-console
    	-p ${path_to_compiled_test_classes}
    	org.codefx.demo.junit5.HelloWorldTest

    兼容性

    您可能已经注意到,JUnit 5占用了一个新的名称空间:org.junit.gen5。 这意味着在同一项目中使用不同的JUnit版本时不会有冲突。

    实际上,一个项目可以包含并运行来自不同版本的测试而不会出现问题,这允许缓慢迁移到JUnit5。我们在研究JUnit的新体系结构时将重新讨论该主题。

    通过异常与JUnit通信的测试库,例如Hamcrest和AssertJ,将继续在新版本中工作。 查看完整版本的HelloWorldTest ,以获取使用Mockito和AssertJ的示例。

    反射

    对于我们的JUnit 5设置,我们在项目中包括了junit5-api,junit5-engine和junit4-runner,编写了第一个最小测试用例,并将其作为JUnit 4测试套件的一部分运行。

    下一篇文章将探讨如何在JUnit 5中编写测试的基础知识。

    翻译自: https://www.javacodegeeks.com/2016/02/junit-5-setup.html

    junit5和junit4

    展开全文
  • Junit5.zip

    2020-01-13 17:11:25
    此资源包含了junit5的jar包和源码,junit5-r5.4.0.zip 和demo的zip文件,对于测试来说是比较有用的
  • junit5 入门系列教程-01-junit5 简单入门例子

    万次阅读 多人点赞 2018-06-24 16:36:15
    Junit5 简介 JDK 支持 快速开始 Maven 导入 测试案例 变化 文档参考 Junit5 JUnit5 is the next generation of JUnit. 目标是为JVM上的开发人员端测试创建一个最新的基础。这包括关注Java 8和以上版本...

    Junit5 系列索引

    junit5 入门系列教程-01-junit5 简单入门例子

    junit5 入门系列教程-02-junit5 注解详解

    junit5 入门系列教程-03-junit5 测试类和方法 {@Test、@RepeatedTest、@ParameterizedTest、@TestFactory或@TestTemplate}

    junit5 入门系列教程-04-junit5 展现名称(@DisplayName)

    junit5 入门系列教程-05-junit5 断言(assert)

    junit5 入门系列教程-06-junit5 假设(Assumptions)

    junit5 入门系列教程-07-junit5 禁用(@Disabled)

    junit5 入门系列教程-08-junit5 条件执行(@EnabledXXX, @DisabledXXX)

    junit5 入门系列教程-09-junit5 标签和过滤(@Tag)

    junit5 入门系列教程-10-junit5 测试实例生命周期(@TestInstance)

    junit5 入门系列教程-11-junit5 内嵌测试(@Nested)

    junit5 入门系列教程-12-junit5 依赖注入构造器、方法

    junit5 入门系列教程-13-junit5 测试接口及默认方法

    junit5 入门系列教程-14-junit5 重复测试(@RepeatedTest)

    junit5 入门系列教程-15-junit5 参数化测试(@ParameterizedTest)

    junit5 入门系列教程-16-junit5 测试模板(@TestTemplate)

    junit5 入门系列教程-17-junit5 动态测试(DynamicTest)

    junit5 入门系列教程-18-junit5 拓展模块-总览(Extend Model)

    junit5 入门系列教程-19-junit5 拓展实体-注册(Register Extension)

    junit5 入门系列教程-20-junit5 拓展实体-条件测试

    junit5 入门系列教程-21-junit5 拓展实体-测试实例后处理(Instance Post-processing)

    junit5 入门系列教程-22-junit5 拓展实体-参数化测试解决方案(Parameter Resolution)

    junit5 入门系列教程-23-junit5 拓展实体-异常处理器(Exception Handle)

    junit5 入门系列教程-24-junit5 拓展实体-测试上下文(Test Context)

    junit5 入门系列教程-25-junit5 拓展实体-存储状态(Keeping State in Extensions)

    junit5 入门系列教程-26-junit5 拓展实体-工具类

    junit5 入门系列教程-27-junit5 拓展实体-用户代码和扩展的相对执行顺序

    junit5 入门系列教程-28-junit5 拓展实体-测试生命周期回调

    junit5 入门系列教程-29-junit5 拓展实体-Junit 平台启动器API(JUnit Platform Launcher API)

    junit5 入门系列教程-30-junit5 实战例子 junit performance

    目录

    Junit5

    JUnit5 is the next generation of JUnit.

    目标是为JVM上的开发人员端测试创建一个最新的基础。这包括关注Java 8和以上版本,以及支持多种不同的测试风格。

    JUnit 5是JUnit Lambda和它在Indiegogo上的众筹活动的结果。

    简介

    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
    • JUnit Platform

    JUnit Platform 作为在JVM上启动测试框架的基础。
    它还定义了TestEngine API,用于开发在平台上运行的测试框架。
    此外,该平台提供了一个控制台启动器,用于从命令行启动平台,并为Gradle和Maven构建插件,以及一个基于JUnit 4的运行器,用于在平台上运行任何TestEngine。

    • JUnit Jupiter

    JUnit Jupiter 是新的编程模型和扩展模型的组合,用于在JUnit 5中编写测试和扩展。
    Jupiter子项目为运行基于平台的测试提供了一个测试引擎。

    • JUnit Vintage

    JUnit Vintage 为在平台上运行基于JUnit 3和JUnit 4的测试提供了一个测试引擎。

    JDK 支持

    JUnit 5在运行时要求Java 8(或更高)。但是,您仍然可以测试使用JDK的以前版本编译的代码

    快速开始

    Maven 导入

    <dependencies>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version>1.2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.2.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    测试案例

    • FirstJUnit5Tests.java
    import org.junit.jupiter.api.Test;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    public class FirstJUnit5Tests {
    
        @Test
        void myFirstTest() {
            assertEquals(2, 1+1);
        }
    
    }

    变化

    • 导入的包路径和原来不同

    • 方法不必再声明为 public

    代码地址

    FirstJUnit5Tests

    文档参考

    user-guide

    展开全文
  • Junit 5 文档

    2017-11-14 08:39:56
    Junit 5 测试java项目 新的Junit结构,与junit4相比,变化较大!
  • JUnit 5教程

    2020-06-04 09:42:19
    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage PS JUnit 5在运行时需要Java 8(或更高版本) 1. JUnit 5 + Maven 请参阅完整的JUnit 5 + Maven示例。 pom.xml <dependency> <...
    junit 5徽标
    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

    PS JUnit 5在运行时需要Java 8(或更高版本)

    1. JUnit 5 + Maven

    请参阅完整的JUnit 5 + Maven示例。

    pom.xml
    <dependency>
    	<groupId>org.junit.jupiter</groupId>
    	<artifactId>junit-jupiter-engine</artifactId>
    	<version>5.5.2</version>
    	<scope>test</scope>
    </dependency>
    
    <build>
        <plugins>
    		<plugin>
    			<groupId>org.apache.maven.plugins</groupId>
    			<artifactId>maven-surefire-plugin</artifactId>
    			<version>3.0.0-M3</version>
    		</plugin>
    	</plugins>
    </build>

    PS maven-surefire-plugin必须至少为2.22.0版本

    2. JUnit 5 + Gradle

    请参阅完整的JUnit 5 + Gradle示例。

    gradle.build
    plugins {
    	id 'java'
    	id 'eclipse' // optional, for Eclipse project
    	id 'idea'	 // optional, for IntelliJ IDEA project
    }
    
    repositories {
    	mavenCentral()
    }
    
    dependencies {
    	testImplementation('org.junit.jupiter:junit-jupiter:5.5.2')
    }
    
    test {
    	useJUnitPlatform()
    }

    3. JUnit 5测试

    4.第三方声明库

    5.整合

    下载源代码

    $ git clone https://github.com/mkyong/junit-examples

    参考文献

    翻译自: https://mkyong.com/junit5/junit-5-tutorials/

    展开全文
  • JUnit Jupiter是JUnit5扩展的新的编程模型和扩展模型,用来编写测试用例。Jupiter子项目为在平台上运行Jupiter的测试提供了一个TestEngine (测试引擎)。 JUnit Vintage提供了一个在平台上运行JUnit 3和JUnit 4的...
  • Junit5 jar包

    2018-06-13 18:26:49
    Junit5的jar包,可用来测试Lambda表达式等。
  • junit5-r5.3.0

    2018-12-25 12:48:14
    junit5-r5.3.0
  • JUnit 5 简介

    千次阅读 2017-12-05 09:06:02
    转自:https://www.ibm.com/developerworks/cn/java/j-introducing-junit5-part1-jupiter-api/index.html  https://www.ibm.com/developerworks/cn/java/j-introducing-junit5-part2-vintage-jupiter-extension
  • maven安装junitJUnit 4 and JUnit 5 are completely different frameworks. They both serve the same purpose, but the JUnit 5 is a completely different testing framework written from scratch. It’s not ...
  • junit5-all-jars

    2018-10-11 00:11:11
    java-junit5 离线工程包,直接导入开始junit5开发,java新一代测试技术
  • Junit5依赖

    千次阅读 2020-07-31 09:13:13
    Junit5依赖 (尽量保持依赖的版本号一致) <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <...
  • gradle junit5 Selenium是一组支持浏览器自动化的工具和库,主要用于Web应用程序测试。 Selenium的组件之一是Selenium WebDriver,它提供客户端库,JSON有线协议(与浏览器驱动程序进行通信的协议)和浏览器驱动...
  • 本文向您展示了如何使用JUnit 5 ConsoleLauncher从命令行运行测试。 经过测试 JUnit 5.5.2 junit-platform-console-standalone 1.5.2 1.下载JAR 要从命令行运行测试,我们可以从Maven中央存储库手动下载...
  • JUnit 5 –设置

    2020-05-28 23:35:39
    此后,该项目更名为JUnit 5,并于2016年2月发布了Alpha版本。我们将在一系列简短文章中对其进行探讨: 设定 基本 建筑 条件 注射 … 本章讨论JUnit 5的设置,以便您可以针对新API编写代码并在IDE或...
  • junit mockito JUnit 5是用于用Java开发单元测试的新的事实上的标准。 这个最新版本摆脱了Java 5的限制,并集成了Java 8的许多功能,其中最著名的是对lambda表达式的支持。 在由两部分组成的JUnit 5简介的前半部分...
  • JUnit 5 所需要的 JUnit Platform 依赖包,主要版本包含:junit-platform-launcher-1.4.2.jar,junit-platform-launcher-1.5.0.jar,junit-platform-launcher-1.5.1.jar,junit-platform-testkit-1.4.2.jar,junit-...
  • junit下载地址

    千次阅读 2017-01-05 16:25:55
    junit http://mvnrepository.com/Error:(23, 17) Failed to resolve: junit:junit:4.12 http://stackoverflow.com/questions/32519219/error23-17-failed-to-resolve-junitjunit4-12
  • JUnit 5预期异常

    2020-06-04 00:45:37
    JUnit 5中,我们可以使用assertThrows声明抛出了异常。 PS已通过JUnit 5.5.2测试 1.未检查的异常 1.1捕获运行时异常的JUnit示例。 ExceptionExample1.java package com.mkyong.assertions; import org....
  • JUnit 5超时示例

    2020-06-04 03:55:37
    JUnit 5中,如果执行时间超过给定的持续时间,我们可以使用@Timeout使测试失败。 PS已通过JUnit 5.5.2测试 1. @超时 TimeOutExample1.java package com.mkyong.timeout; import org.junit.jupiter.api....
  • JUnit 5用户指南目录

    2020-12-14 22:35:44
    JUnit 5用户指南 斯蒂芬·贝希特(Stefan Bechtold)山姆·布兰嫩约翰内斯·林克马蒂亚斯·梅德斯(Matthias ...下载JUnit工件 1.4.2。JUnit 5功能 1.4.3。示例项目 2.写作测试 3.从JUnit 4迁..
  • JUnit 5显示名称

    2020-06-04 11:25:37
    JUnit 5中,我们可以使用@DisplayName声明测试类和测试方法的自定义显示名称。 PS已通过JUnit 5.5.2测试 1. @DisplayName 1.1测试类和方法的默认名称。 DisplayNameTest.java package ...
  • junit5jar包,从官网下的。放到这里,需要的可以下载,当然也可以从官网下载,这里下载会方便一些

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,378
精华内容 21,351
关键字:

junit5下载