-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
MemberRepositoryTest 에러 질문
23.02.06 23:13 작성 조회수 147
0
package jpabook.jpashop;
import org.assertj.core.api.Assertions;
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 static org.assertj.core.api.Assertions.*;
import static org.junit.Assert.*;
@RunWith(SpringRunner.class)
@SpringBootTest
public class MemberRepositoryTest {
@Autowired MemberRepository memberRepository;
@Test
@Transactional
public void testMember() throws Exception {
//given
Member member = new Member();
member.setUsername("memberA");
//when
Long saveId = memberRepository.save(member);
Member findMember = memberRepository.find(saveId);
//then
assertThat(findMember.getId()).isEqualTo(member.getId());
assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
}
}
package jpabook.jpashop;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
public Long save(Member member) {
em.persist(member);
return member.getId();
}
public Member find(Long id) {
return em.find(Member.class, id);
}
}
package jpabook.jpashop;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@Getter @Setter
public class Member {
@Id @GeneratedValue
private Long id;
private String username;
}
MemberRepositoryTest에서 저렇게 오류가 나는데 뭐가 잘못된걸까요ㅠ
package jpabook.jpashop;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class JpashopApplicationTests {
@Test
void contextLoads() {
}
}
그리고 db를 실행시키지 않고 이 테스트를 돌리면 에러가 나는데 H2 db 실행여부랑 테스트 오류랑 상관이 있을까요?
답변을 작성해보세요.
0

OMG
23.02.07 00:03
프로젝트 코드를 확인해봐야 알 것 같습니다.
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
구글 드라이브 업로드 방법 링크주의: 업로드시 권한 문제 꼭 확인해주세요
감사합니다.

ycllyo
질문자23.02.07 00:15

OMG
23.02.07 00:53
코드 확인해보았습니다.
해당 오류는 발생하지 않더라구요.
h2실행하신 후 jdbc:h2:tcp://localhost/~/jpashop
해당 url에 정상적으로 접속이 되는지도 확인이 필요합니다.
만약 정상 실행된다면 jpashop.mv.db를 완전히 삭제 후 새로 생성해주세요.
jpashop.mv.db 삭제 방법
(윈도우)
C/USERS/OMG(계정명) 하위에 존재하는 jpashop.mv.db 삭제
(맥)
/USERS/OMG(계정명) 하위에 존재하는 jpashop.mv.db 삭제

ycllyo
질문자23.02.07 02:05
h2는 여기에 있는 윈도우 실행버전으로 설치했습니다!
파일명이 콘솔에서는 jpashop.mv.db 인데 폴더에서 보이는건 .db가 빠진게 맞는 걸까요?
말씀하신 url에 정상적으로 접속되는지 확인 후 jpashop.mv 파일 제거 후 다시 해봤는데 같은 오류가 발생하네요ㅠ...
이 설정은 강사님께서는 Server로 하셨는데 위에 이미지는 Embedded인게 둘다 상관없는걸까요?

ycllyo
질문자23.02.08 00:18
정말 죄송한데 혹시 언제쯤 해결할 수 있을까요?ㅠㅠ 여기에 막혀서 지금 강의를 못듣고 있는 상태인데 하루가 그냥 지나가 버렸습니다...
파일 자체를 재설치도 해보고 했는데 계속 같은 오류가 나네요ㅠ...

OMG
23.02.08 00:46
강의에서 제공해드리는 프로젝트 코드로 확인해보시겠어요?
만약 동일하다면 jpashop2.mv.db를 생성해서 확인해주세요. application.yml의 url도 ~jpashop2로 변경하셔야 합니다.
코드상에서 문제가 발생하지 않고, 자주 발생하는(=이전에 발생하던) 상황은 아니여서 해결 방법을 하나씩 안내드리고 확인해주시는 방법으로 해야 할 것 같습니다.

ycllyo
질문자23.02.08 09:18
h2설치 및 설정은 제가 답글에 적은게 다 맞는걸까요?
jpashop2로 해도 같은 오류가 납니다
///////////////////////////////////////////////////////////////////////////////////
프로젝트 코드는 다른거 없이 그냥 테스트파일을 런 해보면 되는걸까요?
이렇게 오류가 납니다
답변 1