使用PowerMock模拟静态最终方法调用返回null

问题描述

我正在尝试为getNumber方法的Student类编写一个测试用例。并且,它必须调用Enrollment类的最终静态方法。在我的junit中,我使用了PowerMock来模拟静态调用,但是它没有返回注册实例,而是返回了空值。

public class Student{

 public static String getNumber(){
            Enrollment enroll =   Enrollment.getInstance("xyz");
         return "123";
  }
}

public class Enrollment {
  public static final Enrollment getInstance(String id){
    return new Enrollment;
  }
}   

测试:

@RunWith(powermockrunner.class)
@PrepareForTest({Student.class,Enrollment.class})
public class StudentTest{

@Test
public void testGetNumber(){
        powermockito.mockStatic(Enrollment.class);
        Enrollment enrollment = powermockito.mock(Enrollment.class);
        powermockito.when(Enrollment.getInstance(Mockito.anyString())) .thenReturn(enrollment);
            Student.getNumber(); 
        Mockito.verify(Enrollment.getInstance(Mockito.anyString())); 
   }
}

有人可以帮忙吗?

解决方法

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

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

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