具有许多私有(private)方法的 Java 测试类

标签 java unit-testing junit integration-testing spock

<分区>

我有一个类负责将契约(Contract)从 CSV 文件导入数据库。

类本身只有一个启动导入的公共(public)方法,其他方法都是私有(private)的(因为只有类本身会使用,并且它们持有逻辑)。

我开始使用 Spock 对这个类进行测试,并且有很多私有(private)方法,我应该如何测试它?

我应该将它们公开进行测试吗?只测试主要方法,公共(public)方法?

最好的是什么?

最佳答案

理论上,您的私有(private)方法最终会被其中一种公共(public)方法使用,否则它们根本不会被使用。因此,通常您将测试设置为使用必要的上下文调用公共(public)方法,以便它命中您的私有(private)方法。

单元测试主要是测试编译单元(即类)。您可以直接对方法进行单元测试,但它们必须是公开的,这与拥有一个漂亮干净的 API 背道而驰。

因此,请充分测试您的公共(public)方法以命中所有私有(private)方法。私有(private)方法是类的内部机制,不需要直接对其进行测试。

关于具有许多私有(private)方法的 Java 测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27969920/

相关文章:

java - 网络浏览器插件和java小程序?

java - 以编程方式创建 Log4j 2.x FileAppender

c# - TDD 中的命名测试与单元测试命名

unit-testing - Elixir:测试 GenEvent 的错误报告

android - 为什么在内联创建mockito模拟时我会看到性能提升?

java - 递归划分正方形区域

java - 用于货币格式化的正则表达式 - java

c# - 如何将批准测试的批准文件放在自己的文件夹中?

java - 自动创建junit

java - jmock-2.5.1.jar 与 jmock-junit3-2.5.1.jar