У меня есть следующий класс для тестирования:
public abstract class Challenge {
protected int id;
protected String name;
protected String question;
protected Challenge(){}
public String[] toStrings(){
String[] s = {Integer.toString(id), name, question};
return s;
}
...
Но используя этот тест:
@Test
public void testToStrings() throws Exception{
String[] expectedResult1 = new String[]{"1", "a", "b"};
String[] obtainedResult1 = null;
Challenge challengeMock = PowerMockito.mock(Challenge.class);
challengeMock.id = 1;
challengeMock.name = "a";
challengeMock.question = "b";
obtainedResult1 = challengeMock.toStrings();
Assert.assertEquals(expectedResult1[0], obtainedResult1[0]);
Assert.assertEquals(expectedResult1[1], obtainedResult1[1]);
Assert.assertEquals(expectedResult1[2], obtainedResult1[2]);
}
Я получаю исключение NullPointerException из-за "полученныйResult1 = challengeMock.toStrings ();" который возвращает ноль.
Я использую PowerMock + Mockito, работающий в Robolectric с правилом (потому что это проект Android).
@Rule
public PowerMockRule rule = new PowerMockRule();
Где проблема?