작성
·
255
0
정확히 해당 강의와는 일치하지 않지만 강의를 보면서 테스트코드 문의드립니다
통합테스트를 진행할때 기존 들어가있어야 할 데이터를 기준으로 테스트가 필요할때가 있는데요.
예로 유저 로그인 테스트다 하면 유저 아이디를 알아야 테스트를 할 수 있고 매뉴별 접근권한 테스트를 한다해도 기존 들어있는 데이터가 있어야 로그인을 통해 세션/토큰을 가져와서 테스트를 할텐데요.
보통 이럴때는 테스트는 어떤식으로 해야하나요!? 개발디비를 바라보고 해야하는지 아니면 메모리h2 데이터베이스를 보고 해야하는지 궁금해서요..
메모리에 올리고 하자니 특정 기능테스트가 여러 테이블에 걸쳐서 가져오는 데이터가 필요할 시 이걸 어떤식으로 넣어놓고 해야하는건가 싶습니다..(로딩과 동시에 메모리에 데이터를 삽입하는쿼리를 넣어놔야하나 싶고요..)
이런 내용 아니어도 계정 수정 테스트다 이러면 이미 계정이 존재해야하는데 이 테스트 시에 매번 계정을 넣고 수정하고를 해야하는지.. 아니면 테스트 순서를 정하고 삽입 수정 삭제와 같은 순서로 동작하도록 테스트를 돌려야하는지(트랜잭션 롤백 안되게 처리 후)..
ㅜㅜ 계속 테스트 감을 못잡고 있어서 문의드립니다 먼저 감사합니다 ㅠㅠ
답변 4
1
1
테스트에 필요한 데이터를 넣는 방법은 다양하죠. 테스트용 DB를 따로 만드시고 개발용 DB에서 데이터를 덤프 받아서 테스트 DB에 넣어도 되고, 테스트 실행할 때 소스 코드로 직접 데이터를 만들어 넣어도 되고, 스프링 부트가 지원하는 data.sql을 만들어서 데이터용 리소스 디렉토리에 넣어놓고 사용해도 됩니다
스프링에서 @Transancional이 붙어이는 테스트는 자동으로 롤백됩니다.
0
0