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

ycllyo님의 프로필 이미지

작성한 질문수

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

MemberRepositoryTest 에러 질문

해결된 질문

23.02.06 23:13 작성

·

409

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

OMG님의 프로필 이미지

2023. 02. 06. 23:24

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

@GeneratedValue(strategy = GenerationType.SEQUENCE) 로 변경하고,

application.yml에 ddl-auto를 create로 변경하고 확인해보시겠어요?
.
감사합니다.

ycllyo님의 프로필 이미지
ycllyo
질문자

2023. 02. 06. 23:56

말씀하신대로 했는데 똑같이 오류가 납니다ㅠ

OMG님의 프로필 이미지

2023. 02. 07. 00:03

프로젝트 코드를 확인해봐야 알 것 같습니다.

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.

구글 드라이브 업로드 방법 링크

주의: 업로드시 권한 문제 꼭 확인해주세요


감사합니다.

OMG님의 프로필 이미지

2023. 02. 07. 00:53

코드 확인해보았습니다.

해당 오류는 발생하지 않더라구요.

 

h2실행하신 후 jdbc:h2:tcp://localhost/~/jpashop

해당 url에 정상적으로 접속이 되는지도 확인이 필요합니다.

만약 정상 실행된다면 jpashop.mv.db를 완전히 삭제 후 새로 생성해주세요.

image

jpashop.mv.db 삭제 방법

(윈도우)

C/USERS/OMG(계정명) 하위에 존재하는 jpashop.mv.db 삭제

(맥)

/USERS/OMG(계정명) 하위에 존재하는 jpashop.mv.db 삭제

 

OMG님의 프로필 이미지

2023. 02. 07. 00:55

추가로 설치하신 h2 버전도 공유해주시면 확인에 많은 참고가 될 것 같습니다.

ycllyo님의 프로필 이미지
ycllyo
질문자

2023. 02. 07. 02:05

imageh2는 여기에 있는 윈도우 실행버전으로 설치했습니다!

파일명이 콘솔에서는 jpashop.mv.db 인데 폴더에서 보이는건 .db가 빠진게 맞는 걸까요?

말씀하신 url에 정상적으로 접속되는지 확인 후 jpashop.mv 파일 제거 후 다시 해봤는데 같은 오류가 발생하네요ㅠ...

image

이 설정은 강사님께서는 Server로 하셨는데 위에 이미지는 Embedded인게 둘다 상관없는걸까요?

ycllyo님의 프로필 이미지
ycllyo
질문자

2023. 02. 07. 11:30

image

image

image

image

ycllyo님의 프로필 이미지
ycllyo
질문자

2023. 02. 08. 00:18

정말 죄송한데 혹시 언제쯤 해결할 수 있을까요?ㅠㅠ 여기에 막혀서 지금 강의를 못듣고 있는 상태인데 하루가 그냥 지나가 버렸습니다...

파일 자체를 재설치도 해보고 했는데 계속 같은 오류가 나네요ㅠ...

OMG님의 프로필 이미지

2023. 02. 08. 00:46

강의에서 제공해드리는 프로젝트 코드로 확인해보시겠어요?

만약 동일하다면 jpashop2.mv.db를 생성해서 확인해주세요. application.yml의 url도 ~jpashop2로 변경하셔야 합니다.

 

코드상에서 문제가 발생하지 않고, 자주 발생하는(=이전에 발생하던) 상황은 아니여서 해결 방법을 하나씩 안내드리고 확인해주시는 방법으로 해야 할 것 같습니다.

OMG님의 프로필 이미지

2023. 02. 08. 01:09

3시 전까지 답변 남기실 경우 답변 드리고, 3시 지날 경우 저녁에 다시 확인후 답변 드리겠습니다.

ycllyo님의 프로필 이미지
ycllyo
질문자

2023. 02. 08. 09:18

h2설치 및 설정은 제가 답글에 적은게 다 맞는걸까요?

jpashop2로 해도 같은 오류가 납니다

///////////////////////////////////////////////////////////////////////////////////

프로젝트 코드는 다른거 없이 그냥 테스트파일을 런 해보면 되는걸까요?

image이렇게 오류가 납니다

ycllyo님의 프로필 이미지
ycllyo
질문자

2023. 02. 08. 11:46

아아 해결했습니다ㅠㅠ h2만 죽어라 다시 시도했는데 그냥 코드가 잘못됐었네요...ㅠ
답변 감사했습니다

ycllyo님의 프로필 이미지

작성한 질문수

질문하기