deedee0905 / CreateType

0 stars 0 forks source link

구현기능 테스트 #37

Open deedee0905 opened 2 years ago

deedee0905 commented 2 years ago

구현기능 테스트

deedee0905 commented 2 years ago

지금까지 만들었던 기능들을 하나씩 테스트 해보기로 하였다. hitpaw 라는 프로그램을 써서 화면을 녹화하고 테스트 하는 부분들을 짧은 영상으로 만들어두려고 지금까지 만들었던 기능들을 하나씩 테스트 해보기로 하였다. hitpaw 라는 프로그램을 써서 화면을 녹화하고 테스트 하는 부분들을 짧은 영상으로 만들어두려고 했는데 이 프로그램으로 만든 gif 파일 화질이 너무 떨어져서 다른 프로그램을 알아봐야 할 것 같다.. (품질을 최대로 올렸는데도 저런 화질이 나온다...)했는데 이 프로그램으로 만든 gif 파일 화질이 너무 떨어져서 다른 프로그램을 알아봐야 할 것 같다..

중복검사 기능, 중복검사를 하지 않았을 경우 return 처리가 되는 부분, 중복검사를 했음에도 input에 변화가 생기면 다시 중복검사를 해야하는 기능 등 잘 수행이 되었지만 입력한 비밀번호와 다시 비밀번호를 확인하는 input 부분에 이벤트가 걸려있지 않아서 두 input에 입력된 value값이 다르더라도 회원가입 승인 처리가 진행되었다.

비밀번호 input과 확인input의 value가 같아야 정상적으로 ajax가 호출 될 수 있도록 코드를 수정하였다.

deedee0905 commented 2 years ago

ID input 과 password input 두 개를 다 비우고 로그인을 눌렀을 경우 => return 이벤트 정상 작동

ID input 과 password input 중에 아이디만 value 값을 주고 로그인을 눌렀을 경우 => return 이벤트 정상 작동

ID input 과 password input 중에 비밀번호만 value 값을 주었을 경우 => return 이벤트 정상 작동

ID input 과 password input 둘 다 value를 주었지만 db에 저장된 값과 다른 경우 => return 이벤트 정상 작동

deedee0905 commented 2 years ago

로그아웃 기능 정상 작동 확인

deedee0905 commented 2 years ago

개인 프로필 정보 변경해보기

*변경할 db 컬럼 : profileImagePath / nickname

캡처

user 테이블에 저장된 정보들을 update 하는 api 기능을 실행해보았다 이미지 삭제 버튼을 누르면 아직 서버에 저장되기 전, fileInput에 있는 값을 삭제할 수 있도록 이벤트를 부여해놓았는데 캡처2 캡처3 위와 같이 기능이 정상 작동이 잘 되었다.

변경내용 저장 버튼을 눌렀더니 400에러가 나왔고 userId의 parameter 값을 찾지 못했다는 경고문구가 나왔다. 지금 호출한 api를 쓸 때에 사용하는 userId의 값은 세션에 저장되어있는 값을 불러오는거라서 이상하다 싶어서 jsp에 있는 코드들을 다시 살펴보았더니 ajax가 정상 호출되고 location.href가 되는 링크에 오류가 있었다.

이전에 작성해두었던 코드에서는 parameter 값이 없어도 이동이 가능했지만 현재는 해당 view 페이지에서 parameter 값을 받고있어서 에러가 나는 것을 확인하고 코드를 수정해주었다.

deedee0905 commented 2 years ago

채널 생성 기능 테스트

*유효성 검사 진행 -모든 input을 비우고 채널생성Btn 누르기 => alert 이벤트 발생 후 return -이미지 파일을 올리는 file input에 이미지 삭제 btn을 누르면 value값이 없어지는 이벤트 정상작동 확인 -채널 프로필 이미지에 해당하는 file Input만 채우고 채널생성Btn 누르기 => alert 이벤트 발생 후 return -file input과 채널제목 input을 채우고 채널생성Btn 누르기 => 채널생성 완료 됨(채널 정보는 null 가능)

마찬가지로 ajax는 정상적으로 동작하지만 location.href로 연결되는 url 부분 수정이 필요하여 jsp에서 코드를 일부 수정하였다.

deedee0905 commented 2 years ago

채널 프로필 수정 기능 테스트

캡처2

*유효성 검사 진행 -모든 input을 비우고 변경내용 저장Btn 누르기 => alert 이벤트 발생 후 return -이미지 파일을 올리는 file input에 이미지 삭제 btn을 누르면 value값이 없어지는 이벤트 정상작동 확인 -채널 이름과 자기소개는 채널 생성시 저장된 값을 불러오도록 설정하였음(value값으로 자동적으로 채워넣도록 함)

유효성 검사를 완료하고 변경내용 저장 BTN을 눌렀는데 에러 코드가 발생하였다. userId값을 찾을 수 없다고 하여 코드를 살펴보았는데 이미지를 업로드 할 때에 필요한 userId 부분 parameter를 부여하는 부분이 비어있어서 코드를 수정하였다.

코드를 수정하니 정상 작동되는 부분을 확인하였고 프로필 변경 view 페이지에서 취소 버튼을 눌렀을때 /individual/channel/view 가 아니라 /individual/profile/view로 이동하여서 href에 이동경로도 수정해주었다.

deedee0905 commented 2 years ago

캡처4

채널은 생성되어있지만 작성한 게시물이 없는 경우, /post/postAll/view 에서 불러올 데이터가 없다고 표시해주는 jsp 화면이 보이도록 코드를 수정하였다.

게시물이 작성된 다른 계정으로 로그인하여 테스트 해보았는데 코드들이 의도한대로 정상 작동 되었다!!

deedee0905 commented 2 years ago

채널 프로필을 수정하던 중에 프로필 편집BTN이 -로그인 유무와 상관없이 -그리고 채널을 만든 계정으로 로그인 되어있지 않더라도 channel/view 페이지에서 활성화 되어있는 부분을 발견하였다.

-로그인한 계정이 아닐 경우 -channle/view로 접속할때 필요한 channelId 패러미터와 로그인 했을 때 세션에 저장되는 channelId의 값이 일치하는 경우에만 프로필 편집BTN이 활성되도록 코드를 수정하였다.

캡처1

캡처2

deedee0905 commented 2 years ago

덧글 입력 / 삭제 기능

*유효성 검사 캡처7

-로그인 되어있으나 comment Input을 비워두고 덧글입력BTN을 누른 경우 >> alert 이벤트 동작 후 이후 return

캡처6

-로그인을 하지 않은 상태에서 덧글입력BTN을 누른 경우 >> alert 이벤트 동작 후 이후 return

캡처3

캡처4

캡처5

-덧글 입력 및 삭제 기능 >> 정상 작동 확인

deedee0905 commented 2 years ago

포스트 생성 기능 테스트

*유효성 검사 -NOT NULL에 해당하는 input을 차례대로 유효성 검사 진행 >> alert 이벤트 발생 후 return 정상 작동

캡처1

캡처3

캡처4

-NULL이 가능한 input도 값을 넣거나 넣지 않은 상태로 포스트 insert api가 정상적으로 작동하는 부분 확인하였음

*포스트를 insert api를 테스트해보면서 로그인하지 않은 사용자가 주소창에 /post/create/newPost/view 페이지의 url을 입력하고 접속하면 어떻게 될까? 라는 생각이 들어서 바로 테스트를 해보았다.

로그인 되지 않은 상황임에도 포스트를 입력할 수 있는 페이지로 이동하는 것을 확인하고 모티브 삼고있는 웹서비스는 같은 상황에서 어떻게 처리를 하는지를 확인해보았는데,

로그인 하지 않은 상황에서 post insert view 페이지에 접속할 경우 로그인 view 페이지로 바로 이동을 시키고 있었다.

웹서비스의 흐름상 이런 경우에는 로그인 view페이지로 이동을 시키는 것이 자연스러울 것 같아서 내 코드도 수정을 하였다.

그런데 처음 코드를 수정하였을 때는 내가 원하는대로 기능이 동작하지 않아서 어떤 부분에서 문제가 있는지 확인해보고자 세션에 저장되어있는 channelId값을 확인해보았다.

캡처5

로그아웃을 했으나, 이전에 로그인했던 계정의 channelId값이 그대로 남아있는 것을 확인하였는데 로그아웃 api 기능을 살펴보니 세션에서 userName과 userId 값만 삭제되고 channelId 값에 대한 부분은 처리가 없어서 channelId 값이 그대로 남아있는 것이었다.

캡처6

로그아웃을 하였을 경우 세션에 저장되는 channelId 값을 0으로 변경하여 로그인 하지 않은 상태로 post insert view페이지에 접근시 로그인 view페이지로 바로 이동하게끔 코드를 수정하였고 기능이 정상적으로 작동되는 부분까지 확인하였다.

deedee0905 commented 2 years ago

포스트 삭제 기능 테스트

*유효성 검사 캡처1

캡처2

-로그인한 상황이 아니라면 포스트 수정btn 또는 포스트 삭제btn이 보이지 않도록 처리 >> 정상적으로 작동되는 것 확인

-포스트 삭제btn 누르기 => 포스트 삭제 api 정상작동 확인 포스트가 삭제되면서 포스트에 같이 체크되어있던 덧글, 좋아요, 섬네일 이미지가 삭제되는 부분까지 같이 확인하였다.

캡처5(덧글)

캡처6(좋아요)

캡처7(섬네일)

-테스트용 like의 id = 225) -테스트용 comment의 id = 14

deedee0905 commented 2 years ago

포스트 수정 기능 테스트

*유효성 검사 캡처1 -로그인한 사용자가 작성한 게시글이 아니라면 수정하기btn이 보이지 않도록 함 >> 정상 작동

캡처2 -이전에 insert 했던 내용들을 화면상에 출력하기 >> 정상 작동됨

캡처3

캡처4

-title(제목), subtitle(부제목), content(본문), thumbnail(섬네일), categroy(카테고리), price(가격), updatedAt(업데이트 시간)이 정상적으로 처리되었는지 확인함

deedee0905 commented 2 years ago

구독 체크 / 해제 기능

구독전

구독후

채널 구독 insert / delete 기능 정상작동 확인

본인아이디 -조회하고 있는 post가 로그인한 사람이 작성한 포스트 였을 경우 구독하기 또는 구독중 btn이 표시되지 않도록 하는 기능도 정상작동 확인

구독함 -구독한 채널이 유저탭 > 구독채널에서 정상적으로 데이터가 출력되는지 확인

구독채널이없을때

구독한 채널을 모아서 보는 view 페이지에서 구독한 채널이 아예 없을 경우 너무 view 페이지가 휑한 것 같아서 '아직 구독한 채널이 없습니다.' 라는 문구를 추가하고 싶어서 코드를 조금 변경해보기로 하였다.

어떻게든 좀 쉽게 코드를 수정해보려고 기존에 model에 저장해놓은 값으로 처리를 하려고 하였으나 예상한대로 잘 되지않아 그냥 selec 쿼리를 따로 작성하여 처리하기로 하였다.

구독중인채널이없을때 -로그인한 userId의 값을 기반으로 subscription 테이블에 저장된 데이터를 count하여 count가 0인 경우 위 사진과 같이 화면이 출력되도록 코드를 변경하였다.

deedee0905 commented 2 years ago

좋아요 체크 / 해제 기능 테스트

캡처1 캡처2 캡처3 캡처4

-좋아요 insert 및 delete 기능 정상 작동 확인 (좋아요 테스트 과정에 like 테이블 id = 234)

캡처5

-로그인한 사용자가 좋아요를 체크한 게시물을 유저탭 > 보관함 view 페이지에서 데이터를 출력하여 확인하기 => 정상 작동 확인

캡처6

-좋아요한 게시물이 없을 경우 아직 좋아요를 체크한 게시물이 없다는 메세지가 나오게끔 jsp 코드 수정

deedee0905 commented 2 years ago

a태그로 링크된 부분들 연결에 이상이 없는지 확인하기 1 (너무 길어서 나눠서 올려야겠음)

캡처1 -/post/main/view에서 1~4 숫자 표시된 a태그를 클릭시 href에 입력된 링크로 이동되는 부분 확인

캡처2 -/post/main/view에서 드롭다운 클릭 후 dropdown-items에 href 되어있는 링크로 이동되는 부분 확인

캡처3 캡처4

-/individual/profile/view 페이지에서 /individual/channel/view로 이동하는 기능 확인 (이미지 부분에는 parameter 값이 정상적으로 처리되었지만 채널제목 부분에 걸려있는 href 부분에서 parameter 값이 빠져있어서 코드를 수정하였다.)

캡처5 캡처6

-/individual/channel/view >> /post/postAll/view >> /post/create/postObject/view 로 이동하는 부분 기능 확인 (postAll view 페이지에서 postObject view로 이동할 때 필요한 parameter값이 배정되지 않아서 코드를 수정하였다.)

캡처7 캡처8

-/individual/channel/view >> /post/postAll/view 로 이동하는 부분 기능 확인

캡처1

캡처2

-/individual/library/view >> /post/create/postObject/view로 이동하는 부분 기능 확인

캡처3 캡처4

-덧글을 작성한 사람 프로필 또는 이름을 통해 해당 계정의 profile view / channel view로 이동하는 기능 확인 (이 기능을 테스트해보면서 본인 계정이 아님에도 profile view 채널에 프로필 편집btn on/off 기능이 되어있지 않은 부분을 발견했다 >> 수정할것임!!!

또한, 게시글에 기재된 채널 이름과 소개 부분에 a태그 기능이 되어있지 않아서 이 부분도 코드를 수정해야겠다.)

deedee0905 commented 2 years ago

a태그로 링크된 부분들 연결에 이상이 없는지 확인하기 2

캡처5 캡처6

-parameter로 받은 userId 값과 세션에 저장된 userId 값이 일치하지 않는다면 프로필 변경btn을 화면에서 볼 수 없도록 코드 수정

캡처7 캡처8

-post object view 페이지에서 게시글을 작성한 사람의 채널 이미지, 채널이름, 채널정보를 클릭하면 해당 계정의 channel view 페이지로 이동할 수 있도록 코드 수정

캡처9 캡처10

-구독한 채널 view에서 출력되는 채널의 이미지, 채널이름을 클릭시 해당 채널의 view 페이지로 이동할 수 있도록 코드 수정