Я все еще изучаю JMockit, и мне нужна помощь в его понимании.
Я тестирую класс, который использует методы суперкласса. Мой тест получает нулевой указатель, когда он пытается использовать метод суперкласса из-за кода внутри него, который использует контекст действия struts для получения сеанса и извлечения объекта из сеанса.
Метод, который я хочу обойти в рамках защищенного метода.
public class MyExtendingClass extends MySuperClass{
public void methodIamTesting(){///}
}
public abstract class MySuperClass{
//I want to mock this method
protected Object myProtectedSuperClassMethod(){
// struts action context code that returns an object//}
}
Тестовый код
@Test
public void testRunsAndDoesntPass() {
Mockit.setUpMock(MySuperClass.class, new MySuperClass(){
public Object myProtectedSuperClassMethod() {
return object;
}
});
// real class method invocation happens
assertEquals(expected, actual);
}
Я продолжаю получать NullPointers, как если бы у меня не было макета. Не знаю, что делать дальше. Все документы и образцы кода, которые я прочитал, говорят, что нужно просто объявить метод суперкласса общедоступным в setUpMock, и он должен работать.
Я не могу издеваться над всем классом, потому что это класс, который я тестирую.