Рубрики
Без рубрики

Метод EasyMock Void – ожидаемый вызов()

Иногда нам хочется поиздеваться над пустыми методами. Метод EasyMock expect() нельзя использовать для насмешек над пустыми методами. Однако мы можем использовать expectLastCall() вместе с

Автор оригинала: Pankaj Kumar.

Иногда нам хочется поиздеваться над пустыми методами. Метод EasyMock expect() нельзя использовать для насмешек над пустыми методами. Однако мы можем использовать expectLastCall() вместе с и Answer() для насмешек над методами void.

Метод пустоты EasyMock

Когда мы используем expectLastCall() и и Answer() для моделирования методов void, мы можем использовать getCurrentArguments() для передачи аргументов методу и выполнения некоторых действий над ним. Наконец, мы должны вернуть значение null , так как мы издеваемся над методом void.

Допустим, у нас есть служебный класс, как:

package com.journaldev.utils;

public class StringUtils {

	public void print(String s) {
		System.out.println(s);
	}
}

Вот код для макета метода void print() с помощью EasyMock.

package com.journaldev.easymock;

import static org.easymock.EasyMock.*;

import org.junit.jupiter.api.Test;

import com.journaldev.utils.StringUtils;

public class EasyMockVoidMethodExample {

  @Test
  public void test() {
    StringUtils mock = mock(StringUtils.class);
    
    mock.print(anyString());
    expectLastCall().andAnswer(() -> {
      System.out.println("Mock Argument = "
          +getCurrentArguments()[0]);
      return null;
    }).times(2);
    replay(mock);
    
    mock.print("Java");
    mock.print("Python");
    verify(mock);
  }
}

На рисунке ниже показан вывод консоли при выполнении вышеупомянутого теста JUnit.

Ожидаемый вызов().android()

Если мы просто хотим издеваться над методом void и не хотим выполнять какую-либо логику, мы можем просто использовать expectLastCall().и Void() сразу после вызова метода void для издевательского объекта.