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.
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étodocreateIpEvent()
.Para probar el método
createIpEvent()
, puedes crear una instancia de la claseclient
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()
: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 claseclient
e invoca su métodocreateIpEvent()
para probar su funcionalidad.