2016-03-12 2 views
0

Я пытаюсь протестировать метод андроидной активности onCreate. Действие называется LoginActivity и оно наследуется от AppCompatActivity. Метод вызывает метод super.onCreate()AppCompatActivity, где он не может проникнуть глубоко внутри при вызове getWindow. Он не ошибается.Тест PowerMock Активность onCreate

Так что я попытался подавить метод AppCompatActivity, выполнив:

Method[] appCompatActivityOnCreateMethods = 
     PowerMockito.methods(AppCompatActivity.class, "onCreate"); 

PowerMockito.suppress(appCompatActivityOnCreateMethods); 

loginActivity = spy(new LoginActivity()); 

Но это не похоже на работу. Когда я звоню:

loginActivity.onCreate(mock(Bundle.class)); 

Он по-прежнему вызывает метод super.onCreate.

Я сделал @PrepareForTest() для AppCompatActivity и для моего LoginActivity

Что мне не хватает?

ответ

0

Предполагая, что вы сделали то, что вы написали, и не сделали того, что не писали, вы забыли использовать PowerMockRunner. Из Getting Started Guide:

@RunWith(PowerMockRunner.class) 
@PrepareForTest({ YourClassWithEgStaticMethod.class }) 
public class YourTestCase { 
    ... 
} 
+0

я написал это тоже от того, что я нашел свой баг в версии 1.6.4 степенных издеваться, который будет зафиксирован в 1.6.5. Ошибка в том, что она не подавляет защищенные методы на шпионах –

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