Përmbajtje:

A mund të testoni njësi metodat statike?
A mund të testoni njësi metodat statike?

Video: A mund të testoni njësi metodat statike?

Video: A mund të testoni njësi metodat statike?
Video: Si ta kuptosh qe je shtatzënë veç me sheqer 2024, Dhjetor
Anonim

te njësia ju teston duhet të merrni një pjesë të vogël e juaja kodoni, rilidhni varësitë e tij dhe provë atë në izolim. Kjo është e vështirë me metodat statike , jo vetëm në rast se aksesojnë shtetin global por edhe nëse ata thjesht thërrasin të tjerët metodat statike.

Duke marrë parasysh këtë, si i testoni metodat statike?

Ka katër hapa të thjeshtë në konfigurimin e një testi që tallet me një telefonatë statike:

  1. Përdorni programin PowerMock JUnit: @RunWith(PowerMockRunner.
  2. Deklaroni klasën e testimit që po tallemi:
  3. Tregojini PowerMock emrin e klasës që përmban metoda statike:
  4. Vendosni pritshmëritë, duke i thënë PowerMock të presë një telefonatë në një metodë statike:

Në mënyrë të ngjashme, a mund të tallemi me metoda statike C#? 4 Përgjigje. Moq (dhe të tjera të bazuara në DynamicProxy duke u tallur kornizat) nuk janë në gjendje të tallje çdo gjë që nuk është virtuale apo abstrakte metodë . Përndryshe, ju mund të rifaktoroni dizajnin tuaj në thirrjet abstrakte metodat statike , dhe siguroni këtë abstraksion për klasën tuaj nëpërmjet injeksionit të varësisë.

Në lidhje me këtë, si i testoni njësi metodat private?

Testi i njësisë vetëm API-në e disponueshme publikisht. Kur shkruani testet e njësisë , imitojnë sjelljen e klientëve të USHT-së. Mos testoni metodat private . Ose testi i njësisë ato në mënyrë indirekte, duke përdorur API-në publike, ose ekstraktoni ato në klasa të veçanta dhe provë ato klasa në vend.

Çfarë është një metodë statike?

Në Java, a metodë statike Eshte nje metodë që i përket një klase dhe jo një shembulli të një klase. Të metodë është i aksesueshëm për çdo shembull të një klase, por metodat të përcaktuara në një shembull janë në gjendje të aksesohen vetëm nga ai anëtar i një klase.

Recommended: