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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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