개발/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("/"));
    }
}

 

반응형