Ishga tayyor · Test strategiyasi
Daraja: O'rta
Unit, slice, integration va end-to-end testni riskka qarab tanlash.
Tushuntirish
## Ishdagi vazifa Test sonini emas, eng qimmat regressiyalarni ushlash. Pure biznes qoidasi unit testda tez tekshiriladi. Controller slice HTTP mapping, validation va securityni; repository integration real DB xatti-harakatini; end-to-end esa oz sonli kritik user oqimini himoya qiladi.
## Sifat Test implementation detaliga emas, observable behaviorga bog‘lanadi. Arrange-Act-Assert tushunarli bo‘lsin. Vaqt, random, tashqi API va current user controllable dependency orqali beriladi. PostgreSQLga xos query H2 bilan isbotlanmaydi; real engine yoki Testcontainers kerak. Flaky testni retry bilan yashirmang.
## Ishga tayyor mezon Har production bug avval uni takrorlaydigan regression testga aylanadi.
Kod misoli
@Test
void duplicateKeyReturnsPreviousReceipt() {
var first = service.pay(42L, "same-key");
var second = service.pay(42L, "same-key");
assertThat(second).isEqualTo(first);
}
Keng tarqalgan xatolar
- Repository va Jackson contractini faqat mock bilan test qilib, haqiqiy mappingni tekshirmaslik.
Mashqlar
- Bitta use-case uchun unit, controller va DB integration test chegarasini belgilang.
- Oldingi bugni regression test bilan qayta yarating.
Teglar: career-04, testing, quality, ishga-tayyor