JUnit 5 中的 @TestInstance 注释有什么用?

2024-02-19

你能简单解释一下吗@TestInstance注释以及它在 JUnit 5 中有何用处?

我认为我们可以通过以下方式达到相同的效果使我们的领域static.


I think the docs https://junit.org/junit5/docs/current/user-guide/#writing-tests-test-instance-lifecycle提供有用的总结:

如果您希望 JUnit Jupiter 在同一个测试实例上执行所有测试方法,只需使用 @TestInstance(Lifecycle.PER_CLASS) 注释您的测试类。使用此模式时,每个测试类都会创建一个新的测试实例。因此,如果您的测试方法依赖于存储在实例变量中的状态,您可能需要在 @BeforeEach 或 @AfterEach 方法中重置该状态。

与默认的“每个方法”模式相比,“每个类”模式有一些额外的好处。具体来说,使用“每类”模式,可以在非静态方法以及接口默认方法上声明 @BeforeAll 和 @AfterAll。因此,“每类”模式还可以在 @Nested 测试类中使用 @BeforeAll 和 @AfterAll 方法。

但是您可能已经读过,并且您的想法是正确的,将字段设置为静态将与将该字段声明为实例变量并使用相同的效果@TestInstance(Lifecycle.PER_CLASS).

因此,也许“它在 JUnit 5 中有何用处”这个问题的答案是使用@TestInstance ...

  • 明确表达您的意图。可以假设 static 关键字的使用是偶然的,而使用@TestInstance不太可能是偶然的或轻率的复制粘贴的结果。
  • 将管理范围和生命周期以及清理的责任委托给框架,而不必记住自己管理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JUnit 5 中的 @TestInstance 注释有什么用? 的相关文章

  • H2 - 多个应用程序访问同一个 H2 数据库

    我正在使用嵌入式数据库H2在 2 个网络应用程序中说WebApp1 and WebApp2 我运行 WebApp1 并执行一些查询来访问 H2 数据库 同时我运行 WebApp2 但它抛出异常H2 当前已被另一个进程使用 我的需求是 我应该
  • 哪个 new 首先执行——在构造函数中还是在构造函数外?

    如果我定义一个类如下 public class myClass private x new anotherClass private y public myClass y new anotherClass 哪个变量会更早获得实例 x 或 y
  • 在 Java 中使用 Apache POI XWPF 在同一个 Word 文档中横向和纵向页面

    我正在尝试使用 Java 和 Apache POI 库创建一个包含一些横向页面和一些纵向页面的 Word 文档 我可以更改所有页面的方向 但有没有办法只更改其中某些页面的方向 我尝试过使用不同的部分和主体 但无济于事 目前我已经编写了一个函
  • 具有多个输入的单元测试

    我一直在尝试进行单元测试 并且正在尝试处理一个函数的单元测试 该函数的返回值取决于一堆参数 不过信息量有点大 有点让人不知所措 考虑以下 我有课Article 其中有价格集合 它有一个方法GetCurrentPrice它根据一些规则确定当前
  • Spring Batch 多线程

    我正在编写一个 Spring Batch 并希望在需要时对其进行扩展 我的 ApplicationContext 看起来像这样 Configuration EnableBatchProcessing EnableTransactionMan
  • 在 Eclipse 中导航 Java 调用堆栈

    在调试器中像GDB http sources redhat com gdb 当您在断点处停止时 您可以轻松地向上移动调用堆栈并检查相关的源和堆栈帧数据 在 Eclipse 中如何做到这一点 In the 调试视角 http www ibm
  • 指定自定义应用程序上下文

    我们正在将一些数据服务从使用 jersey spring 的 Jersey 1 x 迁移到使用 jersey spring3 的 Jersey 2 x 我们有一些继承自 JerseyTest 的测试类 其中一些类使用 web xml 文件中
  • Apache POI 的 ProGuard 设置

    我正在构建一个使用 Apache POI 库的应用程序 当我调试应用程序 在不运行 Proguard 的情况下编译它 时 一切都运行良好 但是在导出 APK 后 当我运行应用程序并打开 Excel 文件时 出现以下异常 RuntimeExc
  • 为什么我无法解开根节点并反序列化对象数组?

    为什么我无法通过展开根节点来反序列化对象数组 import java io IOException import java util Arrays import java util List import org codehaus jack
  • Maven:如何获取捆绑在包中的 .so 库

    我有一个带有 jar 和 so 文件的第三方库 我配置了 pom xml 如下
  • 如何在Android Studio中关联.mp3文件

    我想根据列表视图项单击播放 mp3 文件 但是根据我的代码 我运行我的应用程序 出现此窗口 因此由于缺少音频选项 我真的不知道需要选择其中哪一个为了关联我的 mp3 文件 mainList setOnItemClickListener ne
  • 如何告诉 Java SAX 解析器忽略无效字符引用?

    当尝试使用字符引用解析不正确的 XML 时 例如 x1 Java 的 SAX 解析器因致命错误而惨死 例如 org xml sax SAXParseException Character reference x1 is an invalid
  • 如何在 apache poi 中找到包含图片的单元格

    我尝试在 xls 文档中循环图像 我写下一个代码 HSSFPatriarch patriarch sheet getDrawingPatriarch if patriarch null Loop through the objects fo
  • Java 通用问题

    下面的代码可以编译 但如果我取消注释行 它不会编译 我很困惑为什么 HashMap 确实扩展了 AbstractMap 并且声明映射的第一行可以正常编译 import java util AbstractMap import java ut
  • 在 Java Jersey 2 JAX-RS 中初始化单例

    我是泽西岛 2 22 2 的新手 请耐心等待 我正在创建一个与 LDAP 服务器交互的 REST 服务 用于存储 删除和检索用户数据 该服务通过执行加密 解密充当安全中介 在使用 REST 服务之前必须进行相当多的初始化 并且我只想执行此初
  • 如何替换被测模块的文件访问引用

    pyfakefs https code google com p pyfakefs 听起来非常有用 它 最初是作为核心 Python 模块的一个适度的假实现来开发的 以支持中等复杂的文件系统交互 并于 2006 年 9 月在 Google
  • 警告:无法加载 sqljdbc_auth.dll 原因:java.library.path 中没有 sqljdbc_auth

    我正在使用 Ubuntu 12 05 并尝试连接到 Windows Server 2012 来获取数据库 我的数据库名称是 jobs 电脑的IP地址是192 160 1 33 托管在1433 但是当我尝试连接时出现以下错误 WARNING
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu
  • Ant 类路径和 junit.jar

    我有一个 build xml 它允许我运行 junit 测试 这是相关部分
  • 确保对象实现 Comparable

    我有一个小问题 想知道如何解决它 我有一个通用类Tuple

随机推荐

  • 如何将 routerLinkActive 与空 routerLink 一起使用

    我有以下选项卡栏链接 第一个应该是空的
  • 如何使用 POCO 通过 HTTP 基本身份验证进行 HTTP Post?

    我正在尝试使用 POCO 进行 HTTP 基本身份验证 明文用户名和密码 的 HTTP Post 我找到了一个 Get 的示例并尝试修改它 但作为一个菜鸟 我认为我已经破坏了它的实用性 有人知道怎么做吗 是的 我已经看到了另一个关于此的问题
  • 使用 ctest/cmake 测试非零退出状态

    感兴趣的应用程序是一个编译器 当它在源代码中遇到错误时 它会返回非零退出代码 编译器的单元测试由故意触发错误的小片段组成 用于添加测试的函数是 function add compiler test test name options add
  • 检测 AngularJS 中自定义过滤器何时完成[重复]

    这个问题在这里已经有答案了 我有一个自定义过滤器函数 我正在调用 ng repeat 指令 div app title div 这显然会影响 appList 中每个应用程序的 assetFilter 函数 过滤完成后 我想运行另一个函数 如
  • Spring AOP中代理的使用

    我正在读一本书 其中谈到启用AspectJSpring AOP 的支持 下面是书中的一段话 要在 Spring IoC 容器中启用 AspectJ 注释支持 您只需定义一个空的 bean 配置文件中的 XML 元素 aop aspectj
  • Azure 表存储 API 是否缓存结果?

    当我对 Azure 表存储多次运行相同的查询时 它是否使用缓存并加速后续查询 换句话说 它是否缓存 HTTP 响应 Azure存储肯定使用缓存 http www scribd com doc 73458371 Windows Azure S
  • 单击 web.py python 中的按钮时下载/导出 csv 文件

    我正在使用Pythonweb py构建小型网络应用程序的框架 它由一个 Home page以 url 作为输入 Reads anchor text and anchor tags从中 将其写入 csv 文件并下载 当我们点击 a 时 就会发
  • Python range() 上的“in”运算符时间复杂度

    我有以下功能 def foo length num return num in range length 这个函数的时间复杂度是多少 注意到range 在Python 3上创建一个Range对象 这个函数的时间复杂度是O 1 还是O N 我
  • wxPython,更改StyledTextCtrl的背景颜色

    我尝试过 但什么也没发生 self txt SetBackgroundColour 255 0 0 正如标题中所述 我正在尝试更改 StyledTextCtrl 的背景颜色 有谁知道可以使用的方法吗 我检查了 API 文档 但似乎找不到 h
  • 如何从 MATLAB 打印出一大堆符号表以形成十字绣图?

    在这个网站上 http www picturecraftwork com 可以从图像创建针迹图表 我正在尝试在 MATLAB 中执行此操作 我已经使用图像处理工具箱实现了所有内容 减少颜色数量 映射到可用纱线颜色的颜色空间 我已经完成了所有
  • DB 记录属性的整数与字符

    假设我有一张包含房地产列表的表格 每个列表都可以是 出售 或 出租 因此 我可以将 出售 映射到 0 将 出租 映射到 1 并将其作为 INT 存储在数据库中 但是 如果我将其存储为 CHAR 类型的字段中的 销售 租赁 则会更具描述性 或
  • 如何在 Python Pandas 中使用循环更改数据帧? [复制]

    这个问题在这里已经有答案了 我有 N 个数据帧 范围从 L1 Ln 我想修改它们以保留与特定条件相关的行 我运行了以下循环 for df in L1 Ln df df ix df Sector Services 然而 当我调出每个数据框时
  • 如何在 Xamarin.Android 中注册我自己的应用程序子类?

    I have public class MyApp Application 在 Java 中 我将在清单中添加一行并向其传递应用程序的命名空间和名称
  • jQuery 只允许一个版本

    我有一个包含 jquery 的第三方脚本 这会导致事情中断 我使用的是 1 6 版本 外部脚本使用的是旧版本 如何强制只加载一个版本的 jquery 并且它是我在页面上的版本而不是外部加载的版本 这实际上很容易做到 使用 jquery no
  • 如何在将多个图像上传到 Firebase 存储时显示进度条?

    我制作了将多个图像上传到存储并将链接保存到文档的功能 但我不知道如何监控进度 const getURLS async gt const promises images images map image gt const storageRef
  • 将阿拉伯文本保存到 MySQL 数据库中

    我有这段阿拉伯文字 当我尝试将其保存在 MySQL 数据库中时 它没有保存 有什么办法可以将其保存为原文吗 确保您的 MySQL 实例和表设置为采用 UTF 8 而不是 latin1 Section 手册9 1 http dev mysql
  • Chrome 中的展开运算符出现意外标记?

    我正在使用以下代码在 Chrome 开发工具中测试某些内容 const one a a b b const two one c c VM417 1 Uncaught SyntaxError Unexpected token 为什么在展开运算
  • Nuxt/pwa更新版本

    我正在使用 nuxt pwa 模块创建一个 pwa 我设法在工作箱的安装事件中检测到服务工作人员的更改 plugins pwa update js export default async context gt const workbox
  • 带有 jQ​​uery Validate 插件的 jQuery UI 工具提示

    我正在尝试使用 jQuery Tooltip 来显 示错误的不同颜色工具提示 我可以使用 tooltipClass 并适当地设置该类的样式来处理静态内容 error tooltip tooltipClass ttError 任何已经具有错误
  • JUnit 5 中的 @TestInstance 注释有什么用?

    你能简单解释一下吗 TestInstance注释以及它在 JUnit 5 中有何用处 我认为我们可以通过以下方式达到相同的效果使我们的领域static I think the docs https junit org junit5 docs