인프런 커뮤니티 질문&답변

유현욱님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 기능 테스트

fail() 예외를 try -catch로 잡아도 에러 발생

22.09.16 22:19 작성

·

568

0

예외를 try -catch로 잡아도 에러 발생하는데

이런 경우에는 어떻게 해야할까요?

 

답변 2

1

OMG님의 프로필 이미지

2022. 09. 16. 23:11

안녕하세요. 유현욱님, 공식 서포터즈 OMG입니다.

Assertions.fail()과 Assert.fail()의 실패 시 메커니즘 차이인 것 같아요.

Assert.fail()로 하니까 성공하더라구요 ^^

image

감사합니다.

유현욱님의 프로필 이미지
유현욱
질문자

2022. 09. 17. 00:06

OMG님 귀찮게 똑같은 질문해서 죄송합니다.. Assert로 된다고 하셔서 import 다른걸로 바꿔서 해봤고, PDF파일 코드복붙도 했고, 인터넷 서칭도 해봤는데 도저히 해답이 안나와서 또 질문올립니다.....

Juint 4 ,5 다 시도 해봤습니다....

계속 똑같은 에러가 뜨네요..

OMG님의 프로필 이미지

2022. 09. 17. 01:09

package jpabook.jpashop.service;

import jpabook.jpashop.domain.Member;
import jpabook.jpashop.repository.MemberRepository;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;

import javax.persistence.EntityManager;

import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class MemberServiceTest {

    @Autowired MemberService memberService;
    @Autowired MemberRepository memberRepository;
    @Autowired EntityManager em;

    @Test
    public void 회원가입() throws Exception {
        //given
        Member member = new Member();
        member.setName("kim");

        //when
        Long savedId = memberService.join(member);

        //then
        assertEquals(member, memberRepository.findOne(savedId));
    }

    @Test
    public void 중복_회원_예외() throws Exception {
        //given
        Member member1 = new Member();
        member1.setName("kim");

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

        //when
        memberService.join(member1);
        try {
            memberService.join(member2); //예외가 발생해야 한다!!!
        } catch (IllegalStateException e) {
            System.out.println("test실패");
            return;
        }

        //then
        Assert.fail("예외가 발생해야 한다.");
    }
}

이 코드로 확인해보시겠어요?

0

유현욱님의 프로필 이미지
유현욱
질문자

2022. 09. 17. 09:19

끝까지 답변 주신 OMG님 감사합니다. ㅠㅠ 드디어 고쳤네요. 아무리 봐도 제가 코드 잘못친거 같아서 PDF파일에 있는거 복붙 해봤더니 고쳐졌습니다. 감사합니다~~ 좋은하루보내세요