INHOUDSOPGAWE:

Kan jy statiese metodes eenheid toets?
Kan jy statiese metodes eenheid toets?

Video: Kan jy statiese metodes eenheid toets?

Video: Kan jy statiese metodes eenheid toets?
Video: Biggy - Dames 2024, Desember
Anonim

Om eenheid toets jou moet 'n klein stukkie neem jou kode, herbedraad sy afhanklikhede en toets dit in isolasie. Dit is moeilik met statiese metodes , nie net in die geval dat hulle toegang tot globale staat nie, maar selfs as hulle bel net ander statiese metodes.

As u dit in ag neem, hoe toets u statiese metodes?

Daar is vier maklike stappe om 'n toets op te stel wat 'n statiese oproep bespot:

  1. Gebruik die PowerMock JUnit-hardloper: @RunWith(PowerMockRunner.
  2. Verklaar die toetsklas wat ons bespot:
  3. Vertel PowerMock die naam van die klas wat statiese metodes bevat:
  4. Stel die verwagtinge op en vertel PowerMock om 'n oproep na 'n statiese metode te verwag:

Kan ons eweneens spot met statiese metodes C#? 4 Antwoorde. Moq (en ander DynamicProxy-gebaseerde spottend raamwerke) nie in staat is nie spot enigiets wat nie virtueel of abstrak is nie metode . Alternatiewelik, jy kan herfaktoreer jou ontwerp om oproepe na te abstrakte statiese metodes , en verskaf hierdie abstraksie aan jou klas via afhanklikheidsinspuiting.

Met betrekking tot hierdie, hoe eenheidtoets jy private metodes?

Eenheid toets slegs die publiek beskikbare API. Wanneer jy skryf eenheid toetse , boots die gedrag van die SUT se kliënte na. Moenie toets private metodes . Óf eenheid toets hulle indirek, met behulp van die publieke API, of onttrek hulle in aparte klasse en toets eerder daardie klasse.

Wat is 'n statiese metode?

In Java, a statiese metode is 'n metode wat aan 'n klas behoort eerder as 'n geval van 'n klas. Die metode is toeganklik vir elke geval van 'n klas, maar metodes wat in 'n geval gedefinieer is, kan slegs deur daardie lid van 'n klas verkry word.

Aanbeveel: