반응형
요즈음 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("/"));
}
}
반응형
'개발 > Spring' 카테고리의 다른 글
[Spring Security] @WebMvcTest Error creating bean with name 'securityConfig' defined (0) | 2021.04.05 |
---|---|
[Spring Security] Login 이 성공했을 때 후처리를 어떻게 할 수 있을까? (1) | 2021.04.03 |
[Spring Security] Cannot pass a null GrantedAuthority collection (0) | 2021.03.26 |
[Spring] controller unit test with csrf (1) | 2021.03.17 |
[Spring] @DataJpaTest (0) | 2021.03.14 |
댓글