JUnit 5和JUnit 4比较

发表于:2019-2-20 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:2Tree    来源:CSDN

#
JUnit
  JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。
  1. JUnit 5 vs JUnit 4 - 注释
  两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。
  2. JUnit 5和JUnit 4之间的其他差异
  2.1建筑
  JUnit 4将所有内容捆绑到单个jar文件中。
  Junit 5由3个子项目组成,即JUnit Platform,JUnit Jupiter和JUnit Vintage。
  JUnit平台
  它定义了TestEngine用于开发在平台上运行的新测试框架的API。
  JUnit Jupiter
  它具有所有新的junit注释和TestEngine实现,以运行使用这些注释编写的测试。
  JUnit Vintage
  支持在JUnit 5平台上运行JUnit 3和JUnit 4编写的测试。
  2.2必需的JDK版本
  Junit 4需要Java 5或更高版本。
  Junit 5需要Java 8或更高版本。
  2.3断言
  在Junit 4中,org.junit.Assert具有所有断言方法来验证预期结果和结果。
  它们接受错误消息的额外参数作为方法签名中的FIRST参数。例如
   public static void assertEquals(long expected, long actual)
  public static void assertEquals(String message, long expected, long actual)
  在JUnit 5中,org.junit.jupiter.Assertions包含大多数断言方法,包括附加assertThrows()和assertAll()方法。assertAll()到目前为止处于实验状态,并用于分组断言。
  JUnit 5断言方法也有重载方法,以支持在测试失败时传递错误消息,例如
   public static void assertEquals(long expected, long actual)
  public static void assertEquals(long expected, long actual, String message)
  public static void assertEquals(long expected, long actual, Supplier messageSupplier)
  2.4假设
  在Junit 4中,org.junit.Assume包含用于说明测试有意义的条件的假设的方法。它有以下五种方法:
  assumeFalse()
  assumeNoException()
  assumeNotNull()
  假使,假设()
  assumeTrue()
  在Junit 5中,org.junit.jupiter.api.Assumptions包含用于说明测试有意义的条件的假设的方法。它有以下三种方法:
  assumeFalse()
  假使,假设()
  assumeTrue()
  2.5标记和过滤
  在Junit 4中,使用了@category注释。
  在Junit 5中,使用了@tag注释。
  2.6测试套房
  在JUnit 4,@RunWith和@Suite注释。例如
   import org.junit.runner.RunWith;
  import org.junit.runners.Suite;
  @RunWith(Suite.class)
  @Suite.SuiteClasses({
  ExceptionTest.class,
  TimeoutTest.class
  })
  public class JUnit4Example
  {
  }
  在JUnit 5 @RunWith,@SelectPackages和@SelectClasses如
   import org.junit.platform.runner.JUnitPlatform;
  import org.junit.platform.suite.api.SelectPackages;
  import org.junit.runner.RunWith;
  @RunWith(JUnitPlatform.class)
  @SelectPackages("com.howtodoinjava.junit5.examples")
  public class JUnit5Example
  {
  }
  2.7第三方整合
  在Junit 4中,没有对第三方插件和IDE的集成支持。他们必须依靠反射。
  JUnit 5为此专门设立了子项目,即JUnit平台。它定义了TestEngine用于开发在平台上运行的测试框架的API。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号