Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Rest-Assured SpringBoot

Tem alguma configuração que eu possa fazer na classe de teste para subir o contexto do "controller" para então eu poder testar usando o Assured?

2 respostas
solução!

Dê uma olhada no spring-boot-starter-test.

A documentação está em: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html

Dá pra testar uma aplicação sem precisar iniciá-la por fora:

O ideal é usar uma porta randômica. Você tem que indicá-la por RestAssured com o método .port(port) ou comRestAssured.port = port;.

Mas ou menos assim:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class UsuariosWSTest {

    @LocalServerPort
    int port;

   private Usuario esperado1;
    private Usuario esperado2;

    @Before
    public void setup() {
        esperado1 = new Usuario(1L, "Mauricio Aniche", "mauricio.aniche@caelum.com.br");
        esperado2 = new Usuario(2L, "Guilherme Silveira", "guilherme.silveira@caelum.com.br");
    }

    @Test
    public void deveRetornarListaDeUsuarios() {
        XmlPath path = given().port(port).header("accept", "application/xml").get("/usuarios?_format=xml").andReturn().xmlPath();

        List<Usuario> usuarios = path.getList("list.usuario", Usuario.class);

        assertEquals(esperado1, usuarios.get(0));
        assertEquals(esperado2, usuarios.get(1));
    }

}

Muito obrigado pela ajuda Alexandre!!! vlw mesmo