| Advertencia |
|---|
Documentación en proceso |
| Tabla de contenidos |
|---|
...
Vamos a ver cómo realizar tests en nuestros proyectos Spring Boot, con ejemplos de algunas acciones básicas.
...
A parte de hacer mocks, tenemos la opción de utilizar Spy, que en vez de crear un objeto falso, lo que nos permite es interceptar partes del objeto original. Se puede ver como un mock parcial, para por ejemplo simular el comportamiento de algunos métodos, pero manteniendo el comportamiento por defecto del resto. La forma de hacer esto es muy similar a los mocks, pero para simular el comportamiento de las llamadas a los métodos cambia un poco la sintaxis. Vamos a verlo.
Crear spies
Mockito.spy() - Spy de un objeto
Con el método Mockito.spy() podemos crear un spy de un objeto de una clase o interfaz. Esto es, el spy se aplicará únicamente a ese objeto. Si es un bean que por ejemplo utilice otra clase, este spy no se aplicará a ese bean, únicamente al objeto que hemos indicado. Lo haremos así, dentro de un test:
| Bloque de código | ||
|---|---|---|
| ||
UserRepository localMockRepository = Mockito.spy(UserRepository.class); |
@Spy - Spy de un objeto (propiedad de la clase de test)
Podemos indicar en las propiedades de nuestra clase que contiene los tests, que estas sean spies. Esto es, al igual que en el caso anterior, que sólo se apliquen a estos objetos. Lo haremos con la anotación @Spy:
| Bloque de código | ||
|---|---|---|
| ||
@Spy UserRepository mockRepository; |
@SpyBean - Spy de un bean a nivel global
Por último, podemos añadir la anotación @SpyBean las propiedades de la clase, que creará el spy a nivel global, de contexto. Esto quiere decir que todas las instancias de ese bean serán ese spy, en lugar de únicamente el objeto que definimos en la clase de los tests. Esto se aplicará a todos los tests que tengamos en la clase.
| Bloque de código | ||
|---|---|---|
| ||
@SpyBean UserRepository mockRepository; |
...