작성
·
152
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
fail(); 부분에서 오류가 뜨고 이텔릭체로 바뀌지 않습니다. 왜 그런가요?
package hello.hello_spring.service;
import hello.hello_spring.domain.Member;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.*;
class MemberServiceTest {
MemberService memberService = new MemberService();
// 테스트케이스에서는 메서드명 한글로 적어도 된다
@Test
void 회원가입() {
// given
Member member = new Member();
member.setName("hello");
// when
long saveId = memberService.join(member);
// then(검증)
Member findMember = memberService.findOne(saveId).get();
assertThat(member.getName()).isEqualTo(findMember.getName());
}
@Test // 예외처리(테스트케이스에서는 정상적으로 작동하는거도 좋지만 예외 처리가 더 중요하다)
public void 중복_회원_예외() {
// given
Member member1 = new Member();
member1.setName("spring");
Member member2 = new Member();
member2.setName("spring");
// when
memberService.join(member1);
try {
memberService.join(member2);
fail();
} catch (IllegalStateException e) {
}
// then
}
@Test
void findMembers() {
}
@Test
void findOne() {
}
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
최민석님, fail();
메서드에서 문제가 발생한 상황에 대해 안내해드리겠습니다. fail()
메서드는 JUnit 테스트에서 예외가 발생하지 않는 경우 테스트를 실패시키도록 설계된 메서드입니다. 이 메서드에 대해 오류가 발생하는 이유와 해결책을 알려드리겠습니다.
메서드 임포트 확인:
fail()
메서드는 org.junit.jupiter.api.Assertions
패키지에서 제공됩니다. import static org.junit.jupiter.api.Assertions.fail;
구문을 통해 제대로 임포트되어 있는지 확인해주세요. 위 코드에서는 이미 임포트가 되어 있는 것으로 보이지만, 혹시 정확한 패키지 경로가 다르게 되어 있는 경우 오류가 발생할 수 있습니다.
이텔릭체 문제:
코드 에디터에서 특정 메서드나 클래스가 이텔릭체로 보이는 것은 보통 해당 식별자를 찾을 수 없다는 신호일 수 있습니다. 그렇기 때문에 메서드를 잘못 입력했거나, 제대로 임포트되지 않았을 때 발생할 수 있습니다.
JUnit 버전 문제:
사용 중인 JUnit의 버전에 따라 fail()
메서드의 사용법이나 동작이 다를 수 있습니다. JUnit5를 사용 중이면 org.junit.jupiter.api.Assertions
내에 fail()
이 포함되어 있어야 합니다. 그렇지 않으면, JUnit4를 사용하는 경우 org.junit.Assert.fail();
을 사용해야 합니다.
이와 유사한 문제를 다룬 다른 게시글이 있습니다. 아래의 링크를 참조하여 문제를 해결하는 데 도움을 받으실 수 있습니다:
중복_회원_예외 fail()에 생기는 빨간줄! - 해당 질문은 fail()
메서드 사용 시 발생하는 문제에 대해 다룹니다.
회원서비스테스트 강의에서 fail();이 동작안합니다 - 이 질문에서는 fail()
메서드 실행 시 발생하는 오류에 대한 해결책을 제시합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.