имитировать статику без @RunWith (PowerMockRunner.class)

У меня есть следующий код:

        @RunWith(PowerMockRunner.class)
        @PrepareForTest({RequestUtils.class, OsgiUtil.class})
        @PowerMockIgnore({"*"})
        public class MyTest
            ...
             @Test
             public somMethod(){    
                ....  
                mockStatic(RequestUtils.class);
                when(RequestUtils.getLocale(request)).thenReturn(locale);
            }
        }  

Как заменить этот код, чтобы он работал без @RunWith(PowerMockRunner.class)?

В соответствии с причиной, описанной в следующей ссылке, я не могу использовать @RunWith(PowerMockRunner.class)


person gstackoverflow    schedule 10.06.2014    source источник
comment
Если вы не можете использовать @RunWith, вам не нужны аннотации. Вы хотите создавать макеты с использованием аннотаций, но без использования @RunWith(PowerMockRunner.class)?   -  person AlexR    schedule 10.06.2014
comment
@AlexR, можете ли вы предоставить фрагмент кода?   -  person gstackoverflow    schedule 10.06.2014


Ответы (1)


Взгляните на это обсуждение: проблемы при использовании @RunWith Annotation и powerMock

Один из ответов рекомендует использовать PowerMockRule вместо runner. Это решение должно вам подойти.

person AlexR    schedule 10.06.2014
comment
Я не понимаю, как издеваться над статикой с помощью PowerMockRule - person gstackoverflow; 10.06.2014
comment
Правило не вместо mockStatic. Это вместо использования бегуна. Чтобы смоделировать статику, просто вызовите метод mockStatic точно так же, как и вы. Этот метод реализован как минимум в 2-х классах: один для EasyMock, другой для Mockito. - person AlexR; 10.06.2014
comment
где мне написать правило? Как мне использовать это в моем коде? - person gstackoverflow; 10.06.2014
comment
Пожалуйста, перейдите по ссылке, которую я дал в своем ответе. Вот пример. Ищите ответ @gontard. - person AlexR; 10.06.2014
comment
Я сделал это, но я действительно не понимаю - person gstackoverflow; 11.06.2014