Съдържание:

Можете ли да тествате статични методи?
Можете ли да тествате статични методи?

Видео: Можете ли да тествате статични методи?

Видео: Можете ли да тествате статични методи?
Видео: Мокрый посол рыбы 2024, Може
Anonim

Да се единичен тест ви трябва да вземете малко парче от Вашият код, пренастройте неговите зависимости и тест то в изолация. Това е трудно с статични методи , не само в случай, че имат достъп до глобално състояние, но дори ако те просто се обаждат на други статични методи.

Имайки предвид това, как тествате статичните методи?

Има четири лесни стъпки за настройка на тест, който се подиграва на статично повикване:

  1. Използвайте PowerMock JUnit runner: @RunWith(PowerMockRunner.
  2. Декларирайте тестовия клас, на който се подиграваме:
  3. Кажете на PowerMock името на класа, който съдържа статични методи:
  4. Настройте очакванията, като кажете на PowerMock да очаква извикване към статичен метод:

По подобен начин можем ли да се подиграваме на статичните методи на C#? 4 отговора. Moq (и други базирани на DynamicProxy подигравателен рамки) не са в състояние подигравам се всичко, което не е виртуално или абстрактно метод . като алтернатива, можеш преработете дизайна си към абстрактни повиквания статични методи , и осигурете тази абстракция на вашия клас чрез инжектиране на зависимост.

Във връзка с това, как тествате частни методи?

Единичен тест само публично достъпния API. При писане единични тестове , имитират поведението на клиентите на SUT. Недей тествайте частни методи . Или единичен тест ги непряко, използвайки публичния API, или ги извличайте в отделни класове и тест вместо това тези класове.

Какво е статичен метод?

В Java, a статичен метод е метод който принадлежи на клас, а не на екземпляр на клас. В метод е достъпен за всеки екземпляр от клас, но методи дефинирани в екземпляр, могат да бъдат достъпни само от този член на клас.

Препоръчано: