Junit @AfterClass(非静态)

2024-03-17

Junit's @BeforeClass and @AfterClass必须声明为静态。有一个很好的解决方法here https://stackoverflow.com/questions/32952884/junit-beforeclass-non-static-work-around-for-spring-boot-application/32956539#32956539 for @BeforeClass。我的班级中有许多单元测试,只想初始化和清理一次。有关如何找到解决方法的任何帮助@AfterClass?我想使用 Junit 而不引入额外的依赖项。谢谢!


如果您想要类似于提到的解决方法@BeforeClass,您可以跟踪已经运行了多少测试,然后一旦运行了所有测试,最后执行您的结束清理代码。

public class MyTestClass {
  // ...
  private static int totalTests;
  private int testsRan;
  // ...

  @BeforeClass
  public static void beforeClass() {
    totalTests = 0;
    Method[] methods = MyTestClass.class.getMethods();
    for (Method method : methods) {
      if (method.getAnnotation(Test.class) != null) {
        totalTests++;
      }
    }
  }

  // test cases...

  @After
  public void after() {
    testsRan++;
    if (testsRan == totalTests) {
       // One time clean up code here...
    }
  }
}

这假设您使用的是 JUnit 4。如果您需要考虑从超类继承的方法,请参阅this https://stackoverflow.com/questions/28400408/what-is-the-new-way-of-getting-all-methods-of-a-class-including-inherited-defau因为这个解决方案没有继承方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Junit @AfterClass(非静态) 的相关文章

  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • 为什么Iterator接口没有add方法

    In IteratorSun 添加了remove 方法来删 除集合中最后访问的元素 为什么没有add方法来向集合中添加新元素 它可能对集合或迭代器产生什么样的副作用 好的 我们开始吧 设计常见问题解答中明确给出了答案 为什么不提供 Iter
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • Spring Batch:一个读取器、多个处理器和写入器

    在 Spring 批处理中 我需要将 ItemReader 读取的项目传递给两个不同的处理器和编写器 我想要实现的是 gt ItemProcessor 1 gt ItemWriter 1 ItemReader gt item gt Item
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件
  • 如何在 AngularJS 中测试具有解析属性的控制器?

    如何测试具有解析属性的控制器 它会抛出一个错误 未知提供者 InitProvider 在测试期间 这是可以理解的 我该如何测试它 我使用路由配置中的 init 属性来加载数据 并在控制器实例化时将其传递给控制器 以便在加载数据之前路由不会更
  • ArrayList.clear() 和 ArrayList.removeAll() 有什么区别?

    假如说arraylist定义为ArrayList
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向

随机推荐

  • 有什么理由使用 isset() 吗?

    我为什么要使用if isset var 而不仅仅是if var 它似乎做了同样的事情 只是需要额外的处理 谢谢 Reason 原因是 isset 将返回布尔值 并且当您检查变量是否存在并继续时不会引发警告 此外 变量的值也有可能为零 fal
  • 为什么 C 会在 while 循环中卡住?

    当我编译并运行这段代码 它是一个更大的程序的一部分 时 Linux 已经完成了一半while循环 然后就停止工作 下面的代码打印time 0然后挂起 不执行任何其他操作 直到我暂停该进程 到底为什么它会打印time 0但不是下面的健全性检查
  • htaccess 中的重定向规则

    我的新闻有旧网址 例如http example com mynew 35 this is the title http example com mynew 35 this is the title 其中 35 是新闻的 ID 现在我的新网址
  • 列表理解和 len() 与简单的 for 循环

    我应该获取一个单词列表 并计算其中长度为 2 个或更多字符且第一个字符和最后一个字符相等的所有单词 我想出了两种可能的解决方案 result 0 for word in words if len word gt 2 and word 0 w
  • 是否可以将输入数组分散到参数中?

    因此 Promise all 将数组作为值传递到函数中 我更希望它将数组值作为参数传递 假设我有这个功能 function printData a b c console log a b c 我想 Promise all 1 2 3 the
  • GraphDB Free 8.8 Sparql INSERT 返回 400。不支持 INSERT?

    我正在使用 GraphDB Free 并尝试使用 sparql 将一些三元组插入到存储中 该查询看起来像一个简单的 INSERT Some Prefixes INSERT DATA subject predicate object 我使用
  • 无法访问文件“$libdir/plpgsql”:没有这样的文件或目录

    我不知所措 在本地 Postgres 服务器 postgres app Mac OS X 10 7 中创建存储过程时遇到问题 也是如此 psql psql 9 3 0 Type help for help dchaston CREATE O
  • MSSQL2008 - Pyodbc - 以前的 SQL 不是查询

    我无法弄清楚以下代码有什么问题 语法没问题 用 SQL Management Studio 检查 我可以按照我应该的方式访问 这样也可以工作 但由于某种原因 一旦我尝试通过 PyODBC 创建表 它就会停止工作 import pyodbc
  • 2D 模式搜索算法

    我需要学习二维模式搜索算法 非常感谢提示和链接 更重要的是 给定一个 M m n 矩阵 其值在 K 中 example 000000000000000001000000 010100010010 M K 0 1 010100010001 1
  • 覆盖私有方法时的奇怪行为

    考虑下面的代码 class foo private function m echo foo gt m public function call this gt m class bar extends foo private function
  • 为什么这不能用作数组成员资格测试? [复制]

    这个问题在这里已经有答案了 gt gt gt 5 in 1 2 3 4 False False 我知道这是一种奇怪的测试会员资格的方式 而且 gt gt gt 5 not in 1 2 3 4 True 是 正确 的方式 令我困惑的是它的行
  • TypeScript 中的“as const”是什么意思?它的用例是什么?

    我很困惑as const投掷 我查了一些文档和视频 但没有完全理解 我关心的是as const下面代码中的意思是什么 使用它有什么好处 const args 8 5 as const const angle Math atan2 args
  • 基于时间列表中的序列岛交叉表行

    光是写出问题标题就伤了我的头 请多多包涵 请参阅以下 DDL 和虚拟数据 CREATE TABLE dbo tbl Example Date date NULL Time time 0 NULL Branch varchar 3 NULL
  • 编写 jenkins 插件:文档在哪里?

    在我当前的项目中 我们使用 Jenkins 来监控我们的构建 现在他们想让我写一个 Jenkins 插件来添加更多的监控参数 我已经了解了状态监视器插件的工作原理 但我无法弄清楚一些事情 我试图寻找编写插件的文档 但似乎非常缺乏 该网站仅提
  • 确定 Node.js 应用程序中的请求是否为本地请求

    我正在学习 Node js 创建网站时 我将在本地运行该网站 在localhost 部署后 它将在其他服务器上运行 我的问题是 如何确定请求是否来自本地主机或不在 Node 中 在 ASP NET 中 我可以使用Request IsLoca
  • Rails:关系 schema_migrations 的权限被拒绝

    我正在尝试为 Ruby on Rails Web 应用程序设置本地生产环境 我可以运行该应用程序rails server命令 它提供了开发环境 我尝试设置的生产环境纯粹是本地的 我按照本教程使用 apache 2 设置它 https www
  • 如何使用 boto 循环 DynamoDB 表中的所有项目?

    我想查询 DynamoDB 表并检索所有项目并使用 boto 循环它们 如何构建返回表中所有内容的查询或扫描 初步支持Scan API http docs amazonwebservices com amazondynamodb lates
  • 我什么时候需要担心 iOS 应用程序中的线程安全?

    在编写通常的视图控制器代码时 我可以假设这只会从单个事件循环线程调用吗 我需要什么样的类才能保证线程安全 涉及多线程的常见情况有哪些 The 并发编程指南 http developer apple com library ios docum
  • 如何修复 karma 单元测试期间图像的 404 警告

    我正在使用 grunt karma phantomjs jasmine 对我的指令之一 angularjs 进行单元测试 我的测试运行良好 describe bar foo function beforeEach inject functi
  • Junit @AfterClass(非静态)

    Junit s BeforeClass and AfterClass必须声明为静态 有一个很好的解决方法here https stackoverflow com questions 32952884 junit beforeclass no