Что такое Spring Bean? Какие scope бинов существуют?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
# Аннотации для тестирования в 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 - интеграционные тесты