es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El burlado de métodos presentes en el método principal.

Soy nuevo en las pruebas unitarias y estoy utilizando el marco de trabajo Mockito.

Tengo una clase en Java y tengo el método main() en ella. En mi método main() tengo varios otros métodos que necesito probar de forma unitaria.

Esta es mi clase a probar:

public class cliente{
  public static void main(String[] args) {
         Ip ip  =  createIpEvent();
   .
   .
   .
   }
   private static Ip createIpEvent(){
    Ip ip = new Ip();
    ip.setters(); // varios setters
    return ip;
    }
 }

Esta es mi clase de prueba que estoy creando:

public class clienteTest{
 cliente clienteMock = mock(cliente.class);

 @Test
 public void testCreateIpEvent(){
  Ip ip = new Ip();

  //setters....
  try(MockedStatic<cliente> utils = Mockito.mockStatic(cliente.class)){
        utils.when(() -> cliente.main()....)
    //aquí solo puedo acceder al método main() y no al método createIpEvent()
 }
}

Por favor, alguien me ayude con esto.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En primer lugar, no se recomienda realizar pruebas unitarias en el método main() ya que normalmente se utiliza como punto de entrada de la aplicación y no para pruebas unitarias. En su lugar, debes enfocarte en probar los otros métodos de tu clase, incluyendo el método createIpEvent().

    Para probar el método createIpEvent(), puedes crear una instancia de la clase client en tu prueba y luego invocar el método en esa instancia. No necesitas simular la clase en sí, ya que deseas probar su funcionalidad.

    Aquí tienes un ejemplo de cómo podrías escribir tu clase de prueba para probar el método createIpEvent():

    public class clientTest{
    
        @Test
        public void testCreateIpEvent(){
            // crear una nueva instancia de client
            client myClient = new client();
    
            // invocar el método createIpEvent() y obtener el resultado
            Ip ip = myClient.createIpEvent();
    
            // asegurar que el objeto ip no sea nulo y tenga los valores esperados establecidos
            assertNotNull(ip);
            assertEquals(valorEsperado1, ip.getValor1());
            assertEquals(valorEsperado2, ip.getValor2());
            // agregar más aserciones para cualquier otro valor que desees probar
        }
    }
    

    Ten en cuenta que no necesitas utilizar Mockito.mockStatic() en este caso, ya que no estás simulando ningún método o campo estático. Simplemente crea una instancia de la clase client e invoca su método createIpEvent() para probar su funcionalidad.

Comments are closed.