today_is
[ spring 프로젝트 ] 테스트 해보기 본문
오류 1 ) 중복 에러
매장 점주 회원가입을 테스트 해보다가 알게됨
중복값 넣어서 중복체크한 다음에 불가능합니다 떠서 다시 입력하고 체크했음에도 불구하고
중복 오류가 떴다
처음엔 AJAX 부분이 문제인줄 알았는데,
아니였다.. 도대체 뭘까?
스크립트 버튼을 누를때마다
userid 와 nickname 가
새로 입력된 값을 받아오는지 확인하기 위해서
controller에서 매개변수를 출력해봤다
값이 바뀔때마다 입력값을 그대로 출력하는것으로 보아,
입력을 받아오는 과정은 문제가 없어보인다
최소 10번은 테스트해봐야겠다는 마음으로 여러가지 경우의 수를 두고,
input 태그의 입력값을 바꿔보았는데
이상하게 pnum 이 DB 내용과 일치할때마다 에러가 뜨는 것을 확인할 수 있었다
pnum 컬럼은 중복값을 받을 수 있도록 하기로 했는데,
나의 DB 에서는 unique 가 걸려있었다
귀신이 곡할노릇이다
pnum 컬럼은 처음부터 있었던 컬럼이 아니라, 중간에 삽입한 컬럼이기 때문에
create 구문을 작성하다가 실수한 것 같다
create table member (
idx number GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
userid varchar2(500) unique not null,
userpw varchar2(500) not null,
email varchar2(500) not null,
nickname varchar2(500) unique not null,
pnum varchar2(500) unique not null, -- not null 로 변경 !!!!
role number check(role between 1 and 3) not null,
naver_id varchar2(500)
);
아무튼 해결완료
오류 2 ) sql 에러
admin 계정으로 manager 테이블의 내용을 추가 하는 '승인' 버튼에서 문제 발생
원래 role 컬럼은 number 형태였다.
role 값이 다르면 화면도 달리 보이게 하기 위해서 header에 c:if 를 걸어놨었다.
근데 도중에 spring security 를 적용해서 c:if 와 비슷한 역할을 하는 태그를 사용해야하는데,
그 태그는 문자열로만 조건을 세울수 있다는것을 알게됐다.
role 컬럼을 string 으로 바꿨다가, 시큐리티 적용을 빼기로 하면서 다시 원래대로 복구시켰는데
이 부분은 까먹은듯하다
테스트 하면서 int 인 컬럼인데 문자열을 받아와서 에러가 발생함을 알게 되었다.
다시, sql구문을 수정했다 !
(수정후) MemberRepository
@Update("update member set role = 2 where userid = #{userid}")
int checkMember(String userid);
결과
하나의 기능을 구현하고 나서
최소 10번씩은 결과가 맞는지 확인했었는데
이렇게 테스트해보니까 에러가 나는 부분들이 있었다.
역시 끝날때까지 끝난게 아니다..
기능 구현도 중요하지만 테스트도 엄청 중요하다는 것을 몸소 느꼈다.
'project' 카테고리의 다른 글
[ spring 프로젝트 ] 프로젝트 회고 (0) | 2024.05.03 |
---|---|
[ spring 프로젝트 ] alert 띄우기 (0) | 2024.03.27 |
[ spring 프로젝트 ] 네이버 로그인 api (2) (0) | 2024.03.23 |
[ spring 프로젝트 ] 네이버 로그인 api (1) (0) | 2024.03.20 |
[ spring 프로젝트 ] 마이페이지 - 회원정보수정(이메일 인증), list 출력 (0) | 2024.03.18 |