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, Studeni
Anonim

Do test jedinica treba uzeti mali komad tvoj koda, ponovno ožičiti njegove ovisnosti i test to u izolaciji. S ovim je teško statičke metode , ne samo u slučaju da pristupaju globalnom stanju nego čak ako samo zovu druge statičke metode.

S obzirom na to, 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 testnu klasu kojoj se rugamo:
  3. Recite PowerMocku naziv 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 stanju oponašanje sve što nije virtualno ili apstraktno metoda . Alternativno, mogao bi preoblikujte svoj dizajn u apstraktne pozive statičke metode , i pružite ovu apstrakciju svojoj klasi putem injekcije ovisnosti.

S obzirom na to, 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 neizravno, koristeći javni API, ili ih izdvojiti u zasebne klase i test umjesto toga te klase.

Što je statička metoda?

Na 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čeni: