Mundarija:

Statik usullarni sinovdan o'tkaza olasizmi?
Statik usullarni sinovdan o'tkaza olasizmi?

Video: Statik usullarni sinovdan o'tkaza olasizmi?

Video: Statik usullarni sinovdan o'tkaza olasizmi?
Video: Overview of Autonomic Disorders 2024, Noyabr
Anonim

Kimga birlik sizni sinab ko'radi kichik qismini olish kerak sizning kod, uning bog'liqliklarini qayta o'tkazing va sinov u izolyatsiyada. Bu bilan qiyin statik usullar , nafaqat ular global holatga kirishda, balki hatto agar ular shunchaki boshqalarga qo'ng'iroq qilishadi statik usullar.

Buni hisobga olgan holda, statik usullarni qanday sinab ko'rasiz?

Statik qo'ng'iroqni masxara qiladigan testni o'rnatishda to'rtta oson qadam mavjud:

  1. PowerMock JUnit yuguruvchisidan foydalaning: @RunWith(PowerMockRunner.
  2. Biz masxara qilayotgan test sinfini e'lon qiling:
  3. PowerMock-ga statik usullarni o'z ichiga olgan sinf nomini ayting:
  4. PowerMock-ga statik usulga qo'ng'iroqni kutishini aytib, taxminlarni o'rnating:

Xuddi shunday, biz C# statik usullarni masxara qila olamizmi? 4 ta javob. Moq (va boshqa DynamicProxy-ga asoslangan masxara qilish ramkalar) qila olmaydi masxara qilish virtual yoki mavhum bo'lmagan har qanday narsa usuli . Shu bilan bir qatorda, Siz.. mumkin edi qo'ng'iroqlarni mavhum qilish uchun dizayningizni qayta tiklang statik usullar , va bu mavhumlikni sinfingizga qaramlik in'ektsiyasi orqali taqdim eting.

Shu munosabat bilan siz qanday qilib shaxsiy usullarni sinab ko'rasiz?

Birlik testi faqat hammaga ochiq API. Yozayotganda birlik sinovlari , SUT mijozlarining xatti-harakatlariga taqlid qiling. qilmang shaxsiy usullarni sinab ko'ring . Yoki birlik testi ularni bilvosita, umumiy API yordamida yoki alohida sinflarga ajratib oling va sinov o'rniga bu sinflar.

Statik usul nima?

Java tilida, a statik usul a usuli bu sinf misoliga emas, balki sinfga tegishli. The usuli sinfning har bir misoliga kirish mumkin, lekin usullari bir misolda aniqlanganlarga faqat sinfning o'sha a'zosi kirishi mumkin.

Tavsiya: