Чем unit-тесты отличаются от интеграционных?

Ответ

Unit-тесты - тестируют отдельный класс/метод в изоляции (зависимости замокированы). Быстрые, детерминированные.

Интеграционные - тестируют взаимодействие нескольких компонентов (БД, API, файлы). Медленнее, но проверяют реальную работу.

// Unit test
public function testCalculateDiscount(): void {
    $calc = new DiscountCalculator();
    $this->assertEquals(10.0, $calc->calculate(100.0, 10));
}

// Integration test
public function testCreateOrder(): void {
    $order = $this->orderService->create($this->user, $this->items);
    $this->assertDatabaseHas('orders', ['user_id' => $this->user->id]);
}

Пирамида тестирования: много unit, меньше integration, мало E2E.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.