В настоящее время я пытаюсь завершить модульное тестирование в своей игре и столкнулся с исключением из-за нулевого указателя в следующем коде:
Настройка теста:
@RunWith(MockitoJUnitRunner.class)
public class CardMenuTesting {
@Mock
private Game game = Mockito.mock(Game.class);
@Mock
private Input input;
@Mock
private AssetManager assetManager;
@Mock
private Bitmap bitmap;
@Mock
private Paint paint;
@Mock
private CardMenu cardMenu = Mockito.mock(CardMenu.class);
@Mock
private InstructionsScreen instructionsScreen = Mockito.mock(InstructionsScreen.class);
@Mock
GameScreen gameScreen = Mockito.mock(GameScreen.class);
//@Mock
//private CharacterTestScreen characterTestScreen;
@Before
public void setUp() {
when(game.getAssetManager()).thenReturn(assetManager);
when(assetManager.getBitmap(any(String.class))).thenReturn(bitmap);
when(game.getInput()).thenReturn(input);
when(cardMenu.getGame()).thenReturn(game);
when(cardMenu.getName()).thenReturn("CardMenu");
when(instructionsScreen.getGame()).thenReturn(game);
when(instructionsScreen.getName()).thenReturn("InstructionsScreen");
cardMenu = new CardMenu(game);
when(game.getAssetManager()).thenReturn(assetManager);
when(gameScreen.getName()).thenReturn("Game Screen");
cardMenu.instructionButton();
}
МЕТОД ТЕСТА:
@Test
public void testPlayButton() {
CardMenu cardMenu = new CardMenu(game);
cardMenu.getInstructions().setPushTriggered(true);
cardMenu.instructionButton();
assertTrue(game.getScreenManager().getCurrentScreen().getName() == "InstructionsScreen");
}
Метод в классе Card Menu, который я пытаюсь проверить:
public void instructionButton()
{
InstructionsScreen instructionsScreen = new InstructionsScreen(mGame);
if (instructions.isPushTriggered()) {
mGame.getScreenManager().addScreen(instructionsScreen);
}
}
При запуске модульного теста я получаю исключение NullPonterException по адресу:
mGame.getScreenManager().addScreen(instructionsScreen);
и
cardMenu.instructionButton();
Трассировка стека выглядит следующим образом:
java.lang.NullPointerException
at CardMenu.instructionButton(CardMenu.java:161)
at CardMenuTesting.testPlayButton(CardMenuTesting.java:118)
Я хочу, чтобы модульный тест прошел. Любая помощь приветствуется.