Если вам интересно узнать о примерах из часто задаваемых вопросов по JUnit, таких как шаблон базового теста , я думаю, что лучшим примером будет то, что тестируемый класс должен быть создан в вашем методе setUp (или в тестовом методе).
Когда примеры JUnit создают ArrayList в методе setUp, все они продолжают тестировать поведение этого ArrayList в таких случаях, как testIndexOutOfBoundException, testEmptyCollection и тому подобное. Есть точка зрения, что кто-то пишет класс и убедится, что он работает правильно.
Вы, вероятно, должны делать то же самое при тестировании своих собственных классов: создать свой объект в setUp или в тестовом методе, чтобы вы могли получить разумный вывод, если позже его сломаете.
С другой стороны, если вы используете в своем тестовом коде класс коллекции Java (или другой класс библиотеки), это, вероятно, не потому, что вы хотите его протестировать - это просто часть тестового приспособления. В этом случае можно смело предполагать, что он работает как задумано, поэтому инициализация его в объявлении не будет проблемой.
Что бы это ни стоило, я работаю над достаточно большой, многолетней, разработанной TDD кодовой базой. Мы обычно инициализируем вещи в их объявлениях в тестовом коде, и за полтора года, что я был в этом проекте, это никогда не вызывало проблем. Так что, по крайней мере, есть некоторые неопровержимые доказательства того, что это разумно.