Bosh sahifa Wiki Actual value

Actual value

Actual value — test davomida tekshirilayotgan tizim real ravishda hosil qilgan qiymat yoki kuzatilgan holat. U funksiya qaytargan natija, HTTP javob, exception, database yozuvi, message yoki fayl bo‘lishi mumkin. Assertion actual value’ni oldindan belgilangan expected value yoki xususiyat bilan solishtiradi.

Kuzatish chegarasi

Test nimani actual deb olishi contractga bog‘liq. Unit test public method qaytishini tekshiradi; integration test database va brokerdagi natijani ham kuzatishi mumkin; end-to-end test foydalanuvchi interfeysida ko‘ringan holatni o‘lchaydi. Ichki o‘zgaruvchini actual sifatida olish testni implementationga bog‘lab qo‘yishi mumkin.

Observable output quyidagilarni qamrab oladi:

Har bir side effectni tekshirish shart emas. Test maqsadi bilan bog‘liq natija tanlanadi.

Capture va vaqt

Sinxron funksiyada actual darhol olinadi. Asinxron tizimda amal qabul qilingani bilan yakuniy holat orasida vaqt bor. Test fixed sleep ishlatsa muhit sekinlashganda flaky bo‘ladi. Polling ma’lum timeout ichida kerakli holatni kutadi va oraliq diagnostikani saqlaydi.

Eventual consistency’da birinchi read eski qiymatni qaytarishi mumkin. Actual value qaysi vaqt nuqtasiga tegishli ekani test contractida belgilanadi. “Darhol izchil” talab bilan “oxir-oqibat izchil” talab aralashtirilmaydi.

Normalization

Actual natijada timestamp, tasodifiy ID, field tartibi yoki platforma path’i bo‘lishi mumkin. Taqqoslashdan oldin faqat nondeterministik, contractga kirmaydigan qismlar canonical formatga keltiriladi. JSON string whitespace bo‘yicha emas, parse qilingan struktura bo‘yicha solishtirilishi mumkin.

Beqaror qism Nazorat usuli
Joriy vaqt Fake clock yoki diapazon
UUID Inject qilingan generator yoki format tekshiruvi
Collection tartibi Explicit sort yoki unordered compare
Floating point Absolute/relative tolerance
Locale Test locale’ini mahkamlash

Normalization haqiqiy xatoni olib tashlamasligi kerak. Barcha IDlarni o‘chirish noto‘g‘ri reference bog‘lanishini yashirishi mumkin.

Diagnostik taqqoslash

Failure xabari expected va actualni aniq ajratadi. “Expected 5, got 4” tartibi tushunarli. Katta matnda unified diff, strukturalangan obyektlarda field path va collection’da yetishmagan hamda ortiqcha elementlar ko‘rsatiladi.

Actual payload maxfiy ma’lumot saqlasa test reportga to‘liq chiqarilmaydi. Token mask qilinadi, PII field redaction qilinadi. CI artefaktining access va retention siyosati test ma’lumotiga mos bo‘ladi.

Mock va real natija

Mock qaytargan qiymat test setup’i tomonidan yaratilgan actual bo‘lib, real dependency semantikasini isbotlamaydi. Agar test faqat mock javobini production kod o‘zgartirmasdan qaytarganini tekshirsa foydasi cheklangan. Contract test real provider formatiga moslikni alohida tekshiradi.

Stub qiymatlari faqat scenario yaratish vositasi. Tizimning actual xatti-harakati transformatsiya, error mapping yoki side effect orqali tekshiriladi. Over-mocking noto‘g‘ri integratsiyani yashirishi mumkin.

Bir nechta actual qiymat

Operatsiya response bilan birga database state va event hosil qilishi mumkin. Ular bitta transaction contractining qismlari bo‘lsa bir testda tekshiriladi. Aks holda maqsadlar alohida testlarga bo‘linadi.

Soft assertion bir nechta mustaqil actual farqni bir reportda ko‘rsatadi. Ammo birinchi qiymat noto‘g‘ri bo‘lsa keyingi property’ga kirish exception berishi mumkin; structural prerequisite avval hard assertion bilan tekshiriladi.

Reproducibility

Unexpected actual qayta tekshirilishi uchun input, seed, version va muhit metadatasi saqlanadi. Property-based test minimal counterexample’ni chiqaradi. Distributed test correlation ID orqali trace, log va message’larni bitta bajarilishga bog‘laydi.

Bog‘liq tushunchalar

Expected value, Assertion, Test failure, Observable behavior, Test oracle, Normalization, Integration testing