Я учусь на Java-разработчика и сейчас изучаю разработку через тестирование, а это значит, что я очень плохо знаком с JUnit и Mockito.
Я некоторое время боролся, и я застрял.
Я понятия не имею, как протестировать этот конкретный метод, который не имеет аргументов, возвращаемого значения и рандомизатора.
Старая логика:
public void getPlayerToStart(int randomNr) {
if (randomNr == 1) {
currentPlayer = p1;
opponentPlayer = p2;
} else {
currentPlayer = p2;
opponentPlayer = p1;
}
}
Старый тест
@Test
void testSetCurrentPlayerSetToPlayer1() {
gameEngine.getPlayerToStart(1);
assertEquals(gameEngine.getP1(), gameEngine.getCurrentPlayer());
assertEquals(gameEngine.getP2(), gameEngine.getOpponentPlayer());
}
@Test
void testSetCurrentPlayerSetToPlayer2() {
gameEngine.getPlayerToStart(2);
assertEquals(gameEngine.getP2(), gameEngine.getCurrentPlayer());
assertEquals(gameEngine.getP1(), gameEngine.getOpponentPlayer());
}
Новая логика:
public void getPlayerToStart() {
Random rand = new Random();
int randomNr = rand.nextInt(2) + 1;
if (randomNr == 1) {
currentPlayer = p1;
opponentPlayer = p2;
} else {
currentPlayer = p2;
opponentPlayer = p1;
}
}
Я не уверен, как можно протестировать getPlayerToStart () без аргумента randomNr .. Может кто-нибудь, пожалуйста, просто укажите мне правильное направление!
Заранее спасибо.