- Criar o banco de dados
CREATE DATABASE brabank;
-
Importar projeto.
Sua IDE já vai fazer o download das dependências, caso não, MAVEN INSTALL e MAVEN UPDATE no projeto.
-
Rodar classe BrabankapiApplication
- Criar o banco de dados de testes
CREATE DATABASE brabank_test;
- Criar o arquivo application.properties em
src/teste/resources
:
# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url=jdbc:mysql://localhost:3306/brabank_test?useTimezone=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=xxxx
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.validation-query=SELECT 1
spring.datasource.sql-script-encoding=UTF-8
# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
- Alterar a classe BrabankapiApplicationTests:
package br.com.senai.brabankapi;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = BrabankapiApplication.class)
@TestPropertySource(locations = "classpath:test.properties")
public class BrabankapiApplicationTests {
@Test
void contextLoads() {
}
}
- Criar a classe UsuarioResourceTest
package br.com.senai.brabankapi;
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import com.fasterxml.jackson.databind.ObjectMapper;
import br.com.senai.brabankapi.domain.Usuario;
import br.com.senai.brabankapi.resources.UsuariosResource;
public class UsuarioResourceTest extends BrabankapiApplicationTests {
private MockMvc mockMvc;
@Autowired
private UsuariosResource usuariosResource;
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders.standaloneSetup(usuariosResource).build();
}
@Test
public void criarUsuarioComDadosCorretos_RetornarStatusCode201() throws Exception {
Usuario usuario = new Usuario(null,"João","12345678910","teste@teste.com","M","123456");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(usuario);
System.out.println(json);
this.mockMvc.perform(MockMvcRequestBuilders.post("/usuarios")
.contentType(MediaType.APPLICATION_JSON)
.content(json)
)
.andExpect(MockMvcResultMatchers.status().isCreated())
.andExpect(MockMvcResultMatchers.header().string("location", Matchers.containsString("http://localhost/usuarios")));
}
@Test
public void criarUsuarioComDadosErrados_RetornarStatusCode400() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.post("/usuarios")
.contentType(MediaType.APPLICATION_JSON)
.content("")
)
.andExpect(MockMvcResultMatchers.status().isBadRequest());
}
}
- Rodar o teste