Sobes.tech
Junior — Middle

Moduliy testlarni integratsiya testlaridan qanday ajratish mumkin va ularning asosiy farqlari nima?

sobes.tech AI

AIdan javob

Birlik testlari, kodning alohida va izolyatsiya qilingan qismlarini — odatda metodlar yoki sinflarni — tashqi tizimlar bilan (ma'lumotlar bazalari, tarmoq va boshqalar) aloqasiz tekshiradi. Ular tez, oddiy va muayyan logika bo'lagi to'g'ri ishlashini ta'minlashga yordam beradi.

Integratsiya testlari, tizimdagi bir nechta komponent yoki modul o'rtasidagi o'zaro ta'sirni tekshiradi. Ular haqiqiy ma'lumotlar bazalari, API yoki boshqa xizmatlardan foydalanishi mumkin, shunda komponentlar birga to'g'ri ishlashini ta'minlash mumkin.

Asosiy farqlar:

  • Test sohalari: birlik testlari — bitta modul, integratsiya testlari — bir nechta modul.
  • Izolyatsiya: birlik testlari — izolyatsiya qilingan, integratsiya testlari — qilinmaydi.
  • Tezlik: birlik testlari — tezroq, integratsiya testlari — sekinroq.
  • Ma'lumot: birlik testlari — logikani tekshirish, integratsiya — o'zaro ta'sirni tekshirish.

C# misoli:

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

// Integratsiya testi
[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));
}