java - 在最终类中测试私有(private)方法

标签 java junit mockito powermock

我想在最终实用程序类中测试私有(private)方法。

<强>1。类本身:

类签名是:

public final class SomeHelper {

    /** Preventing class from being instantiated */
    private SomeHelper() {
    }

还有私有(private)方法本身:

private static String formatValue(BigDecimal value)

测试已经写好了,但是早些时候,该方法在一个没有私有(private)构造函数的非实用非最终类中。

测试已经在使用 @RunWith(Parameterized.class)

现在我得到的只是一个异常(exception):

org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class com.some.package.util.SomeHelper
Mockito cannot mock/spy following:
  - final classes
  - anonymous classes
  - primitive types

<强>2。测试

这个测试中最重要的一行是:

String result = Whitebox.invokeMethod(mValue, "formatValue", mGiven);

有没有办法让测试工作?

最佳答案

您不需要测试私有(private)方法。

但是你应该测试那些使用它的人。如果调用您的私有(private)方法的方法如您预期的那样工作,您可以假设私有(private)方法正常工作。

为什么?

没有人会单独调用此方法,因此无需对其进行单元测试。

关于java - 在最终类中测试私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35452470/

相关文章:

java - 使用JTable类时,JScrollPane的构造函数和它的add方法有什么区别?

Java 单元测试模拟 HttpServletRequest getResourceAsStream

android - 在 AsyncTask 中测试一个涉及监听器回调的类

Java - 从本地时间转换为 UTC 历史时间

java - .tailSet 据说返回 NavigableSet,但似乎返回 TreeSet

java - 如何用Java生成JUnit测试用例?

performance - Gradle-jUnit测试中的性能不佳

java - Java 抽象类中的模拟异常

java - 如何在测试类中的 main 中 stub 函数(java)

java - 使用 ByteArrayInputStream 构造 ObjectInputStream 后没有可用字节