2016-08-04 3 views
2

Мне нужно высмеять статический метод класса и использовать этот метод издевательства в моем тесте. Прямо сейчас, я могу использовать PowerMock только для этого.PowerMockRunner не применяет JUnit ClassRules

Я комментирую класс с помощью @RunWith (PowerMockRunner.class) и @PrepareForTest с соответствующим классом.

В моем тесте у меня есть @ClassRule, но при запуске тестов правило не применяется должным образом.

Что я могу сделать?

RunWith(PowerMockRunner.class) 
@PowerMockIgnore({ 
    "javax.xml.*", 
    "org.xml.*", 
    "org.w3c.*", 
    "javax.management.*" 
}) 
@PrepareForTest(Request.class) 
public class RoleTest { 

    @ClassRule 
    public static HibernateSessionRule sessionRule = new HibernateSessionRule(); // this Rule doesnt applied 
+0

Только для отслеживания: https://github.com/powermock/powermock/issues/687. PowerMock в основном прерывает обработку JUnit, и нет реального плана для ее исправления. –

ответ

0

Я заглянул в код PowerMock. Похоже, PowerMockRunner не поддерживает @ClassRule. Вы можете попытаться использовать HibernateSessionRule как @Rule вместо @ClassRule.

@PrepareForTest(Request.class) 
public class RoleTest { 

    @Rule 
    public HibernateSessionRule sessionRule = new HibernateSessionRule(); 
+0

Плохая новость :(, но спасибо за ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^