Как лучше всего получить экземпляр класса для тестирования в тестовом классе?
Лучше ли создавать экземпляр вручную с помощью
ClassToBeTested classToBeTested = new ClassToBeTested();
внутри тестового класса
ИЛИ
получить его из контекста Spring, например:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/services-test-config.xml"})
public class MySericeTest {
@Autowired
MyService service;
...
}
Я ценю быстрое принятие, рад, что вы нашли ответ полезным.




В программировании есть простое правило, которое поможет решить такие вопросы:
вы делаете что-то не потому, что можете, а потому, что это имеет смысл.
Значение: вы всегда стремитесь написать максимально минималистичный, упрощенный код, решающий вашу проблему.
Так когда
ClassToBeTested classToBeTested = new ClassToBeTested();
достаточно для вашего тестового примера и дает вам все необходимое для написания хорошего теста, затем вы используете его.
Если вам нужно что-то, что вы получаете «более простым» из этого подхода DI на основе аннотаций, тогда вы используете этот подход.
Сказав это, есть также условности. Когда "типичная" вещь, которую сделали бы большинство программистов... это использование аннотационного подхода, тогда это то, что вы должны использовать.
Лучше попробуйте использовать автоматическое связывание, чтобы согласовать его с более чистым и удобным для тестирования кодом и будущими изменениями.
использование «нового» может быть проблематичным в будущем, но автоматическое подключение может спасти вас
Есть ли у него зависимости? Если да, то второе дело предоставит их вам. Если нет, или вы готовы предоставить их сами, любой из них будет работать.