JPA 활용편 - Test

Stella·2022년 5월 9일
0

Java

목록 보기
10/18

JPA가 동작하는 걸 TEST 하기 위해서.
좋은 테스트라고 할 수는 없음.
좋은 테스트 -> DB나 Dependencies 없이, 스프링도 엮지 않고 순수한 method로만 test하는게 좋음. unit test

아래 테스트 같은 경우는 통합 테스트 할때.

@RunWith(SpringRunner.class) // spring과 integration  해서 test
@SpringBootTest // spring과 integration  해서 test
@Transactional

public class MemberServiceTest {

    @Autowired MemberService memberService;
    @Autowired MemberRepository memberRepository;
    // @Autowired EntityManager em; // db에 query 가는 거 확인
    @Test
    // @Rollback(false) // rollback 안함 -> db에 반영됨
    public void 회원가입() throws Exception{
        //given
        Member member = new Member();
        member.setName("kim");
        //when
        Long savedId = memberService.join(member);
        //then
        // em.flush(); // db에 query 가는 거 확인
        assertEquals(member,memberRepository.findOne(savedId));
    
    }
    
    @Test(expected = IllegalStateException.class)
    public void 중복_회원_예외() throws Exception{
        //given
        Member member1 = new Member();
        member1.setName("kim");

        Member member2 = new Member();
        member2.setName("kim");

        //when
        memberService.join(member1);
        memberService.join(member2); // 예외 발생해야함

        //then
        fail("예외 발생");
    
    }
profile
Hello!

0개의 댓글