如何使用Powermockito在同一个类中模拟静态和非静态方法

时间:2016-05-18 12:28:47

标签: junit powermockito

我有一个同时具有静态和非静态方法的类,并希望为它们编写单元测试用例。     ClassA的{

static getInstance()
{
   // to do logic
}

void log()
{
  system.out.print();
}
}

classA的测试用例是

ClassTest
{
  public void setup()
{
       PowerMockito.mockStatic(ClassA.class);
        mockA = PowerMockito.mock(ClassA.class);

      Mockito.when(ClassA.getInstance("user")).thenReturn(mockA);
        Mockito.doNothing().when(mockA).log(Mockito.anyString(),  Mockito.anyString(), Mockito.any(Exception.class), Mockito.anyMap());

    enter code here

}
}

当我调用log方法时,我会遇到异常。我们如何嘲笑这个?

1 个答案:

答案 0 :(得分:1)

认真回答:不要那样做

简单地避免编写需要PowerMock的生产代码;例如,因为您正在调用静态方法。

通常,“对PowerMock的需求”直接转换为:您的设计需要改进!

你很快就会发现PowerMock会产生更多正在解决的问题。因此:避免使用它。