#java #maven #junit #qa
Вопрос:
Я здесь новичок, так что заранее извиняюсь за глупый вопрос.
У меня есть некоторые проблемы с моим тестом JUnit: по некоторым причинам он показывает мне ошибку в индексе.
Я прикрепил ссылку на свой репозиторий с тестом и экранами.
Спасибо! ошибка:
org.opentest4j.AssertionFailedError: array contents differ at index [0],
expected: <Poster(id=3, pictureId=33, filmName=Space, filmGenre=Lamusic)>
but was: <Poster(id=2, pictureId=22, filmName=Moon, filmGenre=Lamedy)>
Комментарии:
1. Пожалуйста, опубликуйте свой код в виде текста, а не ссылки на страницу с текстом.
2. @ScottHunter вот так?
3. Нет; включите текст кода в вопрос вместо ссылки на него.
4. @ScottHunter, тогда это будет слишком длинный пост
5. Публикуйте только ту часть(ы), которая имеет отношение к вашему вопросу. (49 строк-это не слишком долго для публикации.)
Ответ №1:
Во втором тесте getLastPosters2()
(который не работает) вы утверждаете порядок, отличный от вашего первого теста getLastPosters()
.
Poster[] expected = new Poster[]{thirdFilm,secondFilm};
Это обратный порядок, который вы добавляете в свой PosterManager
.
Измените порядок на следующий, и тест будет работать:
Poster[] expected = new Poster[]{secondFilm,thirdFilm};
При первом тестировании getLastPosters()
вы утверждаете в том же порядке, что и при добавлении их в PosterManager
.
Однако либо ваш второй тест утверждает неправильный порядок и терпит неудачу, либо ваша реализация неверна, и ваш первый тест «ложноположителен».
Комментарии:
1. о, большое вам спасибо, теперь все работает. Я поставил его {Третий фильм, второй фильм], потому что думал, что менеджер должен поставить только два фильма, начиная с самого последнего, поэтому должен был быть первый третий фильм, а затем второй фильм
Ответ №2:
Ваш тест ищет результаты снизу вверх, в то время как ваш код создает массив с подходом сверху вниз!
Комментарии:
1. хорошо, спасибо. Так как же я могу сказать, чтобы проверить, чтобы сделать это наоборот? С @До @После? Пожалуйста, приведите мне пример.