Sadržaj:

Možete li jedinicom testirati statičke metode?
Možete li jedinicom testirati statičke metode?

Video: Možete li jedinicom testirati statičke metode?

Video: Možete li jedinicom testirati statičke metode?
Video: [QUESTION] Can we mock static methods in unit tests? 2024, Maj
Anonim

To jedinični test treba uzeti mali komad vaša koda, ponovo ožičiti njegove zavisnosti i test to u izolaciji. Ovo je teško statičke metode , ne samo u slučaju da pristupaju globalnom stanju nego čak ako oni samo zovu druge statičke metode.

S obzirom na ovo, kako testirate statičke metode?

Postoje četiri jednostavna koraka u postavljanju testa koji ismijava statički poziv:

  1. Koristite PowerMock JUnit runner: @RunWith(PowerMockRunner.
  2. Deklarirajte test klasu kojoj se rugamo:
  3. Recite PowerMock-u ime klase koja sadrži statičke metode:
  4. Postavite očekivanja, govoreći PowerMocku da očekuje poziv statičke metode:

Slično, možemo li se rugati statičkim metodama C#? 4 odgovora. Moq (i drugi bazirani na DynamicProxy-u podrugljivo okviri) nisu u mogućnosti rugati se sve što nije virtuelno ili apstraktno metoda . Alternativno, mogao bi prepravite svoj dizajn u apstraktne pozive statičke metode , i pružite ovu apstrakciju vašoj klasi putem injekcije zavisnosti.

U vezi s tim, kako vršite jedinično testiranje privatnih metoda?

Jedinični test samo javno dostupan API. Prilikom pisanja jedinični testovi , oponašaju ponašanje klijenata SUT-a. Nemoj testirati privatne metode . Ili jedinični test ih indirektno, koristeći javni API, ili ih izdvojiti u zasebne klase i test umjesto toga te časove.

Šta je statička metoda?

U Javi, a statička metoda je metoda koji pripada klasi, a ne instanci klase. The metoda je dostupan svakoj instanci klase, ali metode definirane u instanci mogu im pristupiti samo taj član klase.

Preporučuje se: