2013-09-04 1 views
0

Я хочу написать блок тестового примера для некоторых из статических методов в моем проекте,модульного тестирования статических методов, использующих powermock

Snippet моего кода класса,

Class Util{ 
    public static String getVariableValue(String name) 
    { 
    if(isWindows()){ 
     return some string... 
    } 
    else{ 
     return some other string... 
    } 
    } 

    public static boolean isWindows(){ 
    if(os is windows) 
     return true; 
    else 
     return false; 
    } 

} 

В принципе, я хочу написать блок тестовый пример для getVariableValue(), когда isWindows() возвращает false. Как написать это с помощью powermock?

+0

вам нужно возвратить '' false' для isWindows() 'и проверить getVariableValue)' 'метод (Do? –

ответ

1
// This is the way to tell PowerMock to mock all static methods of a 
// given class 
PowerMock.mockStaticPartial(Util.class,"isWindows"); 

expect(Util.isWindows()).andReturn(false);  
4

В этих решениях также используется Easymock для настройки ожидания. Прежде всего, необходимо подготовить вас TestClass:

@RunWith(PowerMockRunner.class) 
@PrepareForTest(Util.class) 
public class UtilTest {} 

Mock статический класс:

PowerMock.mockStaticPartial(Util.class,"isWindows"); 

Настройка ожидание:

EasyMock.expect(Util.isWindows()).andReturn(false); 

Replay макет:

PowerMock.replay(Util.class); 

Mak е вызов метода, который необходимо проверить, и после проверки издеваться с:

PowerMock.verify(Util.class); 
+0

Спасибо Том. Это сработало. – karts