본문 바로가기
개발/Spring

[Spring Security] Spring Security Login 테스트코드 만들기

by 상용최 2021. 3. 26.
반응형

요즈음 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("/"));
    }
}

 

반응형

댓글