Тест JUnit на JAVA не удался

#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)>
 

Нажмите здесь, чтобы посмотреть Тест на GitHub

Комментарии:

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. хорошо, спасибо. Так как же я могу сказать, чтобы проверить, чтобы сделать это наоборот? С @До @После? Пожалуйста, приведите мне пример.