2016-04-14 2 views
1

У меня есть метод, который выполняет проверку, чтобы узнать, разрешен ли пользователь, а затем имеет другую логику, которую я хочу проверить, для авторизации моего пользователя.Как издеваться над методом, чтобы возвращать что-то вместо исключения исключения (PowerMock?)

Итак, у меня есть static метод OAuthUtil.retrieveAuthority(), который возвращает строку, скажем, «домен».

Мой конструктор что-то вроде

public ImplService(){ 
    String authority = OAuthUtil.retrieveAuthority(); 
    //do something else 
} 

И у меня есть еще один метод, который является один я на самом деле пытаюсь проверить, скажу getList().

retrieveAuthority() в свою очередь может вызывать исключение aWebApplicationException, если Subject имеет значение null, которое оно всегда будет, но я хочу полностью обходить это. Итак, я хочу, чтобы мой макет возвращал что-то («домен») вместо того, чтобы бросать исключение. Это возможно?

Итак, мой тест что-то вроде этого прямо сейчас, и он терпит неудачу, когда исключение встречается:

import org.junit.Before; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.powermock.api.mockito.PowerMockito; 
import org.powermock.modules.junit4.PowerMockRunner; 

@RunWith(PowerMockRunner.class) 
public class TestMine { 
    public ImplService impl; 

    @Before 
    public void setUp() { 
     PowerMockito.mockStatic(OAuthUtil.class); 
     PowerMockito.when(OAuthUtil.retrieveAuthority()).thenReturn("domain"); 
     ImplService impl = new ImplService(); 
    } 

    @Test 
    public void getListTest() throws NotFoundException { 
     Response response = impl.getList(); 
    } 
} 

ответ

2

Да, это вполне возможно. Вам необходимо добавить:

@PrepareForTest({OAuthUtil.class}) 
public class TestMine { //above this line 
Смежные вопросы