Spisu treści:

Czy możesz testować jednostkowo metody statyczne?
Czy możesz testować jednostkowo metody statyczne?

Wideo: Czy możesz testować jednostkowo metody statyczne?

Wideo: Czy możesz testować jednostkowo metody statyczne?
Wideo: [QUESTION] Can we mock static methods in unit tests? 2024, Listopad
Anonim

Do przetestuj cię trzeba wziąć mały kawałek Twój kod, przeprogramuj jego zależności i test to w izolacji. To jest trudne z metody statyczne , nie tylko w przypadku dostępu do stanu globalnego, ale nawet Jeśli po prostu dzwonią do innych metody statyczne.

Biorąc to pod uwagę, jak testujesz metody statyczne?

Konfiguracja testu, który naśladuje wywołanie statyczne, składa się z czterech prostych kroków:

  1. Użyj programu uruchamiającego PowerMock JUnit: @RunWith(PowerMockRunner.
  2. Zadeklaruj klasę testową, z której się wyśmiewamy:
  3. Podaj PowerMock nazwę klasy, która zawiera metody statyczne:
  4. Skonfiguruj oczekiwania, mówiąc PowerMock, aby oczekiwał wywołania metody statycznej:

Podobnie, czy możemy zasymulować statyczne metody C#? 4 odpowiedzi. Moq (i inne oparte na DynamicProxy szyderstwo frameworki) nie są w stanie kpina wszystko, co nie jest wirtualne ani abstrakcyjne metoda . Alternatywnie, mógłbyś zrefaktoryzuj swój projekt na abstrakcyjne wezwania do metody statyczne i udostępnij tę abstrakcję swojej klasie za pomocą iniekcji zależności.

W związku z tym, jak testujecie metody prywatne?

Test jednostkowy tylko publicznie dostępny interfejs API. Podczas pisania testy jednostkowe , naśladują zachowanie klientów SUT. Nie przetestuj metody prywatne . Albo test jednostkowy je pośrednio, za pomocą publicznego API, lub wyodrębnij je do osobnych klas i test te zajęcia zamiast.

Czym jest metoda statyczna?

W Javie metoda statyczna jest metoda należy do klasy, a nie do instancji klasy. ten metoda jest dostępny dla każdej instancji klasy, ale metody zdefiniowane w instancji są dostępne tylko dla tego członka klasy.

Zalecana: