Ricerca nel sito web

Metodo Void EasyMock - waitLastCall()


A volte vogliamo deridere i metodi void. Il metodo EasyMock expect() non può essere utilizzato per deridere i metodi void. Tuttavia, possiamo usare expectLastCall() insieme a andAnswer() per deridere i metodi void.

Metodo del vuoto EasyMock

Quando usiamo expectLastCall() e andAnswer() per deridere i metodi void, possiamo usare getCurrentArguments() per ottenere gli argomenti passati al metodo ed eseguire alcune azioni su di esso. Infine, dobbiamo restituire null poiché stiamo prendendo in giro un metodo void. Supponiamo di avere una classe di utilità come:

package com.journaldev.utils;

public class StringUtils {

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

Ecco il codice per simulare il metodo void print() usando 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);
  }
}

aspettatiUltimaChiamata().andVoid()

Se vogliamo solo simulare il metodo void e non vogliamo eseguire alcuna logica, possiamo semplicemente usare expectLastCall().andVoid() subito dopo aver chiamato il metodo void sull'oggetto simulato.

Puoi controllare il progetto completo e altri esempi EasyMock dal nostro repository GitHub.

Articoli correlati: