작성
·
588
0
예외를 try -catch로 잡아도 에러 발생하는데
이런 경우에는 어떻게 해야할까요?
답변 2
1
안녕하세요. 유현욱님, 공식 서포터즈 OMG입니다.
Assertions.fail()과 Assert.fail()의 실패 시 메커니즘 차이인 것 같아요.
Assert.fail()로 하니까 성공하더라구요 ^^
감사합니다.
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
끝까지 답변 주신 OMG님 감사합니다. ㅠㅠ 드디어 고쳤네요. 아무리 봐도 제가 코드 잘못친거 같아서 PDF파일에 있는거 복붙 해봤더니 고쳐졌습니다. 감사합니다~~ 좋은하루보내세요
OMG님 귀찮게 똑같은 질문해서 죄송합니다.. Assert로 된다고 하셔서 import 다른걸로 바꿔서 해봤고, PDF파일 코드복붙도 했고, 인터넷 서칭도 해봤는데 도저히 해답이 안나와서 또 질문올립니다.....
Juint 4 ,5 다 시도 해봤습니다....
계속 똑같은 에러가 뜨네요..