Встречается на собеседованиях • сегодня

В чем разница между unit-тестами и integration тестами и end-to-end тестами

Unit-тесты проверяют отдельные компоненты (методы, классы) изолированно, часто с моками зависимостей. Integration-тесты проверяют взаимодействие нескольких компонентов (например, сервиса и БД). End-to-end (E2E) тесты имитируют поведение пользователя, проверяя всю систему целиком.

Пример unit-теста (JUnit + Mockito):

java
@Test
void testCalculateTotal() {
    CartService cartService = new CartService();
    assertEquals(30, cartService.calculateTotal(Arrays.asList(10, 20)));
}

Пример integration-теста (Spring Boot Test):

java
@SpringBootTest
class UserRepositoryTest {
    @Autowired
    private UserRepository userRepo;

    @Test
    void shouldSaveUser() {
        User user = new User("test");
        userRepo.save(user);
        assertNotNull(userRepo.findById(user.getId()));
    }
}

E2E тест (Selenium):

java
@Test
void testLoginFlow() {
    driver.get("https://example.com/login");
    driver.findElement(By.id("username")).sendKeys("user");
    driver.findElement(By.id("password")).sendKeys("pass");
    driver.findElement(By.id("submit")).click();
    assertTrue(driver.getCurrentUrl().contains("dashboard"));
}

Чем выше уровень теста, тем он медленнее и сложнее в поддержке, но дает больше уверенности в работоспособности системы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы