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

时间:2020-09-03 10:30:29

标签: java junit powermock

我正在尝试为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())); 
   }
}

有人可以帮忙吗?

0 个答案:

没有答案
相关问题