← Назад к вопросам

Что такое Spring Bean? Какие scope бинов существуют?

2.0 Middle🔥 191 комментариев
#Spring Boot и Spring Data#Spring Framework

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# Аннотации для тестирования в Java

JUnit 4 и JUnit 5

Основные аннотации

@Test - помечает метод как тест @Before/@BeforeEach - выполняется перед каждым тестом @After/@AfterEach - выполняется после каждого теста @BeforeClass/@BeforeAll - выполняется один раз перед всеми тестами @AfterClass/@AfterAll - выполняется один раз после всех тестов @Ignore/@Disabled - пропустить тест @ParameterizedTest - параметризованный тест @Nested - вложенные тесты

Spring Testing

@SpringBootTest - загружает полный контекст приложения @DataJpaTest - тестирование JPA репозиториев @WebMvcTest - тестирование контроллеров @MockBean - создаёт mock bean в контексте @SpyBean - создаёт spy (реальный объект с возможностью мока) @ExtendWith - загружает расширение (например MockitoExtension)

Mockito аннотации

@Mock - создаёт mock объект @Spy - создаёт spy объект @InjectMocks - внедряет mocks в объект @Captor - захватывает аргументы метода

Пример использования

@SpringBootTest

class UserServiceTest {
    
    @MockBean
    private UserRepository userRepository;
    
    @Autowired
    private UserService userService;
    
    @BeforeEach
    void setUp() {
        // Инициализация перед каждым тестом
    }
    
    @Test
    void testCreateUser() {
        // Тестовый метод
    }
    
    @ParameterizedTest
    @ValueSource(strings = {"user1", "user2"})
    void testWithParameters(String user) {
        // Параметризованный тест
    }
}

Резюме

@Test - основная аннотация @Before/@After - setup/teardown @BeforeClass/@AfterClass - один раз для класса @Mock/@Spy - создание test doubles @InjectMocks - dependency injection в тесты @SpringBootTest - интеграционные тесты

Что такое Spring Bean? Какие scope бинов существуют? | PrepBro