java - 测试类静态初始化程序的最佳方法是什么?

标签 java junit static-initializer

我有一个具有相当复杂的静态初始化的类。我正在从目录中读取文件,然后解析这些 json 文件、映射到对象并填充列表。您可以想象,可能会出现一些异常,我需要覆盖并测试这些代码分支。问题是这个静态初始化只运行一次/测试用例文件。 我遇到的解决方案:

  • 每个行为的新测试用例文件
  • 卸载静态类
  • 新的 JVM

我对这些选项不感兴趣,难道没有更好的选择吗?

最佳答案

如果您无法避免静态初始化程序,请将其主体提取到方法中。然后是测试方法。你的静态初始化器看起来像 static { myMethod(); 很难破解。

关于java - 测试类静态初始化程序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26398935/

相关文章:

java - 静态和非静态初始化代码块有什么区别

java - 将源从 1.5 更改为 1.7(使用 cocos 命令行工具)

java - 使用 ASCII (Java) 打印用户输入的字符串中字符的频率

java - 检测无效输入的个数(使用parseInt)

scala - 如何让gradle为自定义源集生成junit测试结果报告?

java - Java 中初始化器与构造器的使用

java - ObjectOutputStream 和 PrintWriter 冲突

java - 如何在 JUnit 测试中强制 Mockito 抛出 RemoteException

通过创建执行某些工作的接口(interface)的模拟对象来进行 Java 单元测试

c# - C# 中的集合初始化器