2016-05-18 101 views
0

我有一个既有静态方法又有非静态方法的类,并且希望为其编写单元测试用例。 ClassA的{如何使用Powermockito在同一类中嘲讽静态和非静态方法

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 

} 
} 

当我打电话日志方法,我收到例外。我们如何嘲笑这个?

回答

1

严重的回答:不要那样做

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

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

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

+0

另外,我建议如果你先写产品代码然后试着去测试一下它,那么你的错误顺序就是错误的。首先尝试编写测试,看看你是否无法获得这个测试 - 这会让你的生产代码变得更加简单,清晰并且容易测试。 – unigeek

相关问题