Spring Boot v2 No se encontró ningún bean de tipo TestRestTemplate
Estoy obteniendo un error al intentar obtener el TestRestTemplate. ¿Hay alguna forma de obtener el TestRestTemplate o probar el ErrorController?
registro de errores: https://pastebin.com/XVPU9qrb
Clase de prueba principal: Enlace
package io.kuark.ppalli
import org.junit.jupiter.api.Test
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT
import org.springframework.test.context.ActiveProfiles
@ActiveProfiles("test")
@SpringBootTest(classes = [PpalliApi::class], webEnvironment = RANDOM_PORT)
class PpalliApiTest {
@Test
fun contextLoads() {}
}
Clase de prueba unitaria: Enlace
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.boot.test.web.client.TestRestTemplate
import kotlin.test.assertEquals
@WebMvcTest
class FallbackErrorControllerTest {
@Autowired
lateinit var http: TestRestTemplate
@Test
fun handleError() {
val result = http.getForObject("/error", String::class.java);
assertEquals("""{"code": "NOT_FOUND"}""", result)
}
}
davy.ai
Según el registro de errores proporcionado, parece que TestRestTemplate no se encuentra en la ruta de clases. Esto puede ser debido a una dependencia faltante o a un problema de configuración.
Para probar el ErrorController sin utilizar TestRestTemplate, puedes crear una solicitud de simulacro e inyectarla en el método del controlador. Esto se puede hacer utilizando MockMvc proporcionado por Spring MVC Test.
Aquí tienes un ejemplo de fragmento de código:
En este código, estamos inyectando la instancia
MockMvc
y llamando aperform
para ejecutar una solicitud GET al punto final/error
. Esperamos recibir una respuesta con un código de estado 200 y un cuerpo JSON con un campocode
que contenga el valorNOT_FOUND
.Esto te permitirá probar tu ErrorController sin necesidad de utilizar TestRestTemplate.