Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad. Claro que también los puedes usar para tu desarrollo en el día a día.
import static org.mockito.Mockito.*;
List<String> mockedList = mock(List.class); //clase a simular
when(mockedList.get(0)).thenReturn("hello"); //comportamiento simulado
//llamadas
assertEquals("hello", mockedList.get(0));
mockedList.add("test");
//verificaciones
verify(mockedList).add("test");
verify(mockedList, times(1)).add("test");
verify(mockedList, never()).clear(); Si te llegan a mostrar algo como esto es mejor que sospeches, mockito se usa principalmente para pruebas de integración. Si llegas a ver código como este, lo más probable es que el desarrollador solamente quisiera llegar a su cuota de code coverage.
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock
private UserRepository userRepository;
@InjectMocks
private UserService userService; //lugar donde se usa el mock
@Test
void shouldReturnUser() {
//comportamiento simulado
when(userRepository.findById(1L))
.thenReturn(Optional.of(new User(1L, "John")));
when(userRepository.findById(1L))
.thenThrow(new RuntimeException("DB error")); //simulación de errores
User user = userService.getUser(1L); //método que usa la clase a simular
//verificaciones
assertEquals("John", user.getName());
assertThrows(RuntimeException.class, () -> {
userService.getUser(1L);
});
}
} Esta es la forma más común de usar mockito, simular respuestas y errores. Cuando simulamos una respuesta que siempre es la misma se le llama stub, cuando cambia dependiendo de alguna condición se le conoce como mock.
Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual…
Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma…
En este tutorial aprenderá a usar expresiones regulares en Java de manera práctica para contar…
¿Entrevista de programación Java fullstack? No te preocupes, te tengo un compendio de preguntas de…
Te recomiendo algunos cursos de Udemy para mejorar tus softskills y así mejorar en tu…
Aunque hay ofertas que nos parecen buenas, es mejor no apresurarse y conocer todas las…