Sobes.tech
Junior — Middle

Ako odlíšiť modulárne testy od integračných testov a aké sú ich hlavné rozdiely?

sobes.tech AI

Odpoveď od AI

Jednotkové testy kontrolujú jednotlivé, izolované časti kódu — zvyčajne konkrétne metódy alebo triedy — bez interakcie s externými systémami (databázy, sieť atď.). Sú rýchle, jednoduché a pomáhajú zabezpečiť, že konkrétny kus logiky funguje správne.

Integračné testy kontrolujú interakciu medzi viacerými komponentmi alebo modulmi systému. Môžu používať reálne databázy, API alebo iné služby, aby sa zabezpečilo, že komponenty správne spolupracujú.

Hlavné rozdiely:

  • Oblasť testovania: jednotkové — jeden modul, integračné — viac modulov spolu.
  • Izolácia: jednotkové — izolované, integračné — nie.
  • Rýchlosť: jednotkové — rýchlejšie, integračné — pomalšie.
  • Cieľ: jednotkové — overiť logiku, integračné — overiť interakciu.

Príklad v C#:

// Jednotkový test
[Test]
public void Add_TwoNumbers_ReturnsSum()
{
    var calculator = new Calculator();
    Assert.AreEqual(5, calculator.Add(2, 3));
}

// Integračný test
[Test]
public void SaveUser_UserIsSavedInDatabase()
{
    var userService = new UserService(new Database());
    var user = new User { Name = "John" };
    userService.Save(user);
    Assert.IsTrue(userService.Exists(user));
}