개발/Spring
[Spring Security] Spring Security Login 테스트코드 만들기
상용최
2021. 3. 26. 02:22
반응형
요즈음 Spring Boot와 Spring Security를 이용하여 개인프로젝트를 진행중에 있다.
목표는 테스트코드를 작성하자이다.
Login은 굉장히 중요한 기능이고 테스트코드가 필수라고 생각했다.
그래서 Spring Security의 Login은 어떤식으로 테스트하는지 공부해보았다.
@SpringBootTest
class SecurityConfigTest {
@Autowired
private WebApplicationContext context;
@Autowired
private MemberRepository memberRepository;
@Autowired
PasswordEncoder passwordEncoder;
private MockMvc mvc;
@BeforeEach
public void setup(){
mvc = MockMvcBuilders
.webAppContextSetup(this.context)
.apply(springSecurity())
.build();
Member member = new Member("csytest1", passwordEncoder.encode("1234qwer"), "test", false);
memberRepository.save(member);
}
@Test
@DisplayName("Login 테스트")
public void login_test() throws Exception {
// given
String userId = "csytest1";
String password = "1234qwer";
// when
mvc.perform(formLogin().user(userId).password(password))
.andDo(print())
// then
.andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("/"));
}
}
반응형