макет статичен без @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
Не разбирам hpe да се подиграва на статиката с помощта на PowerMockRule - person gstackoverflow; 10.06.2014
comment
Правилото не е вместо mockStatic. Това е вместо да използвате runner. За да се подиграете със статиката, просто извикайте метод 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