해결된 질문
작성
·
413
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 실행여부랑 테스트 오류랑 상관이 있을까요?
답변 1
0
프로젝트 코드를 확인해봐야 알 것 같습니다.
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
구글 드라이브 업로드 방법 링크주의: 업로드시 권한 문제 꼭 확인해주세요
감사합니다.
코드 확인해보았습니다.
해당 오류는 발생하지 않더라구요.
h2실행하신 후 jdbc:h2:tcp://localhost/~/jpashop
해당 url에 정상적으로 접속이 되는지도 확인이 필요합니다.
만약 정상 실행된다면 jpashop.mv.db를 완전히 삭제 후 새로 생성해주세요.
jpashop.mv.db 삭제 방법
(윈도우)
C/USERS/OMG(계정명) 하위에 존재하는 jpashop.mv.db 삭제
(맥)
/USERS/OMG(계정명) 하위에 존재하는 jpashop.mv.db 삭제
h2는 여기에 있는 윈도우 실행버전으로 설치했습니다!
파일명이 콘솔에서는 jpashop.mv.db 인데 폴더에서 보이는건 .db가 빠진게 맞는 걸까요?
말씀하신 url에 정상적으로 접속되는지 확인 후 jpashop.mv 파일 제거 후 다시 해봤는데 같은 오류가 발생하네요ㅠ...
이 설정은 강사님께서는 Server로 하셨는데 위에 이미지는 Embedded인게 둘다 상관없는걸까요?
정말 죄송한데 혹시 언제쯤 해결할 수 있을까요?ㅠㅠ 여기에 막혀서 지금 강의를 못듣고 있는 상태인데 하루가 그냥 지나가 버렸습니다...
파일 자체를 재설치도 해보고 했는데 계속 같은 오류가 나네요ㅠ...
강의에서 제공해드리는 프로젝트 코드로 확인해보시겠어요?
만약 동일하다면 jpashop2.mv.db를 생성해서 확인해주세요. application.yml의 url도 ~jpashop2로 변경하셔야 합니다.
코드상에서 문제가 발생하지 않고, 자주 발생하는(=이전에 발생하던) 상황은 아니여서 해결 방법을 하나씩 안내드리고 확인해주시는 방법으로 해야 할 것 같습니다.
h2설치 및 설정은 제가 답글에 적은게 다 맞는걸까요?
jpashop2로 해도 같은 오류가 납니다
///////////////////////////////////////////////////////////////////////////////////
프로젝트 코드는 다른거 없이 그냥 테스트파일을 런 해보면 되는걸까요?
이렇게 오류가 납니다
말씀하신대로 했는데 똑같이 오류가 납니다ㅠ