JMockit 验证是否调用了私有方法

问题描述

我正在测试一个公共方法,我想验证是否调用了一个模拟参数的私有方法。 我找到的所有答案都使用 invoke 方法,但自 JMockit v1.36 以来已被删除

public class ClassToTest{

   public void methodToTest(){
     DependencyClass abc = new DependencyClass();
     if(privateMethod1()){
        privateMethod2(abc);
     }
   }
   
   private boolean privateMethod1(){ return true; }
   
   private void privateMethod2(DependencyClass abc){ abc.doStuff(); }
}

public class testClassToTest{
   
   @Mocked
   DependencyClass abc;
   
   @Tested 
   ClassToTest testedClass;

   @BeforeEach
   public void setUp() { 
     testedClass = new ClassToTest();
   }
    
   @Test
   public void testMethod(){
        new MockUp<ClassToTest>() {
            @Mock
            private boolean privateMethod1() {
                return true;
            }
        };
        
        testedClass.methodToTest();

        new FullVerificationsInOrder() {{
            abc = new DependencyClass();
            //Check here if privateMethod2(abc) gets called once
        }};
   }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)