java - 有没有办法通过jmockit从嵌套类调用方法?

标签 java mocking jmockit

我有以下类(class):

public class SomeClass1
{
   protected void method1()
   {
      String someString = NestedClass1.subMethod1("Hi");
   }

   private static class NestedClass1
   {
      static String subMethod1(String param1)
      {
          return param1;
      }
   } 
}

我在测试中模拟了 SomeClass1 的 method1,并且需要像原始方法一样调用模拟 method1 主体中的 NestedClass1.subMethod1 。我已经尝试了 Deencapsulation 类中的实用方法(invoke、newInstance、newInnerInstace),但没有得到预期的结果。

 new MockUp<SomeClass1>()
 {
     @Mock
     void method1()
     {

     }
 };

有办法解决这个问题吗?提前致谢。

最佳答案

您必须为静态内部类使用正确的类名(如 String):

Deencapsulation.invoke("org.yourpackage.SomeClass1$NestedClass1", "subMethod1", "Hello");

注意“$”符号

关于java - 有没有办法通过jmockit从嵌套类调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410155/

相关文章:

java - Spring静态自引用类模式用例

java - 将在 JBoss 4.2 上运行良好的应用程序部署到 JBoss 5 时出错

python - 在导入模块之前模拟

maven - Powermock 和 JMockit 单元测试的测试覆盖率

java - JMockit 的 @Injectable 用于非 Autowired 字段

java - Java中什么是Null

java - 使用充当对象 ID 的字符串在数组列表中搜索对象?空指针问题

java - Spring 测试模拟 findById 不工作

python - Selenium/Python - 如何模拟服务器响应?

java - 使用 JMockit 模拟 ResourceLoading