Только начинаю постигать полезности тестирования. Перечитал много ответов здесь и в гугле в целом, но ответа не нашел.
Имеется метод (кто ради интереса писал игры на JavaRush, тому будет знакомо):
public void move() {
if (super.x < RoadManager.LEFT_BORDER)
x = RoadManager.LEFT_BORDER;
else if (super.x > RoadManager.RIGHT_BORDER - width)
x = RoadManager.RIGHT_BORDER - width;
Как видите, имеется 2 условия. Насколько я понял, под if и else if нужно писать два разных теста. Однако никак не могу понять, как это протестировать с помощью JUnit.
UPD: Пробовал сделать это в два действия (для if): сперва assertTrue проверил правдивость условия, далее уже assertEquals сравнил ожидаемое значение с актуальным, но это неверно :(
Если вы хотите unit-тесты, то вам нужно проверять не результат логических выражений в условии внутри функции, а результат выполнения самой функции. Вы, вероятно, неправильно поняли суть юнит-тестов. А она в том, что мы проверяем работу всей функции, а не того, что происходит внутри неё.
Пример того, что можно сделать вам для проведения теста. Задаем какое-то значение для super.x, задаем RoadManager.LEFT_BORDER и RoadManager.RIGHT_BORDER. Делаем это всё ручками через сеттеры, если они у вас определены, либо другим способом, который может задать значения так, чтобы мы знали их точно(или хотя бы ожидали определенное значение переменной в начале функции. Соответственно, мы можем посчитать, что будет в if'ах и можем предсказать, что должно произойти в результате выполнения функции.
Далее, мы вызываем нашу функцию, затем assertEquals, в котором пишем ожидаемое значение и геттер для переменной x, которая должна меняться в результате выполнения функции. Делается это всё не в том же классе, а в отдельном классе, который обычно помещается в папку 'src'--'test', структура которой далее соответствует папке 'src'--'main'
И ещё, что, по-вашему, должно произойти, если
super.x >= RoadManager.LEFT_BORDER & super.x <= RoadManager.RIGHT_BORDER? Вы учитываете это при написании теста?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости