Obsah:

Můžete unit testovat statické metody?
Můžete unit testovat statické metody?

Video: Můžete unit testovat statické metody?

Video: Můžete unit testovat statické metody?
Video: Nick Lane: Origins of Life, Evolution, Alien Life 2024, Listopad
Anonim

Na jednotka vás otestuje je třeba vzít malý kousek vaše kód, přepojte jeho závislosti a test to v izolaci. S tím je to těžké statické metody nejen v případě přístupu ke globálnímu stavu, ale dokonce i - li jen volají jiným statické metody.

Vzhledem k tomu, jak testujete statické metody?

Existují čtyři snadné kroky v nastavení testu, který zesměšňuje statické volání:

  1. Použijte běžec PowerMock JUnit: @RunWith(PowerMockRunner.
  2. Prohlaste testovací třídu, kterou zesměšňujeme:
  3. Řekněte PowerMock název třídy, která obsahuje statické metody:
  4. Nastavte očekávání a řekněte PowerMock, aby očekával volání statické metody:

Podobně můžeme zesměšňovat statické metody C#? 4 Odpovědi. Moq (a další založené na DynamicProxy uštěpačný rámců) nejsou schopni falešný cokoli, co není virtuální nebo abstraktní metoda . Alternativně, mohl bys refaktorujte svůj design na abstraktní výzvy statické metody a poskytněte tuto abstrakci vaší třídě prostřednictvím vkládání závislostí.

Jak v tomto ohledu testujete soukromé metody?

Test jednotky pouze veřejně dostupné API. Při psaní jednotkové testy , napodobují chování klientů SUT. Ne testovat soukromé metody . Buď jednotkový test nepřímo, pomocí veřejného API, nebo je extrahovat do samostatných tříd a test místo toho tyto třídy.

Co je to statická metoda?

V Javě, a statická metoda je metoda který patří spíše do třídy než do instance třídy. The metoda je přístupný pro každou instanci třídy, ale metody definované v instanci jsou přístupné pouze tomuto členu třídy.

Doporučuje: