Kazalo:

Ali lahko preizkusite statične metode na enoto?
Ali lahko preizkusite statične metode na enoto?

Video: Ali lahko preizkusite statične metode na enoto?

Video: Ali lahko preizkusite statične metode na enoto?
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim

Za test enote je treba vzeti majhen kos tvoj kodo, ponovno ožiči njene odvisnosti in test to v izolaciji. S tem je težko statične metode , ne samo v primeru, da dostopajo do globalnega stanja, ampak celo če samo kličejo druge statične metode.

Glede na to, kako testirate statične metode?

Obstajajo štirje preprosti koraki za nastavitev testa, ki se norčuje iz statičnega klica:

  1. Uporabite tekač PowerMock JUnit: @RunWith(PowerMockRunner.
  2. Razglasite testni razred, ki se mu posmehujemo:
  3. Povejte PowerMocku ime razreda, ki vsebuje statične metode:
  4. Nastavite pričakovanja in povejte PowerMocku, da pričakuje klic statične metode:

Podobno se lahko posmehujemo statičnim metodam C#? 4 odgovori. Moq (in drugi, ki temeljijo na DynamicProxy posmehljiv okviri) ne zmorejo posmehovati se vse, kar ni virtualno ali abstraktno metoda . Druga možnost je, lahko bi preoblikujte svoj dizajn v abstraktne klice statične metode in zagotovite to abstrakcijo svojemu razredu z injekcijo odvisnosti.

Kako v zvezi s tem preizkušate zasebne metode?

Preizkus enote samo javno dostopni API. Pri pisanju enotni testi , posnemajo vedenje strank SUT. ne preizkusite zasebne metode . bodisi enotni test jih posredno, z uporabo javnega API-ja, ali jih ekstrahirajte v ločene razrede in test namesto teh razredov.

Kaj je statična metoda?

V Javi, a statična metoda je metoda ki pripada razredu in ne primerku razreda. The metoda je dostopen vsakemu primerku razreda, vendar metode do določenih v primerku lahko dostopa samo ta član razreda.

Priporočena: