Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI testing #27

Merged
merged 21 commits into from
Dec 2, 2023
Merged

UI testing #27

merged 21 commits into from
Dec 2, 2023

Conversation

mechanicjo
Copy link
Contributor

testing에 대해서 작업 중인 브랜치입니다.

mechanicjo and others added 12 commits November 20, 2023 21:33
MyPageScreen test
- 상단 위 톱니바퀴 모양 아이콘 클릭시 MyInformationScreen으로 이동

MyInformationScreen
- "로그아웃" 버튼 클릭시 "logout" route로 이동 이후 앱 재시작
- 상단에 뒤로가기 버튼 클릭시 MyPageScreen으로 이동

testcode 작성을 위해 HomeNavGraph에서 startDestination을 세팅할 수 있도록 수정하였습니다.
BottomBar Component에 대한 test 코드입니다.
-처음 앱 시작시 HomeScreen에서 시작
-Social Icon 클릭시 Social Screen으로 이동
-MyPage Icon 클릭시 MyPage Screen으로 이동
-Home Icon 클릭시  Home Screen으로 이동

TODO: 위치 정보 공유 허용을 테스트 시작하기 전에 일일히 에뮬레이터 실행해서 허용해 주어야 합니다. 이건 추후 test 전에 setup 코드 작성으로 해결할 예정입니다.
testing시에 앱을 삭제하고 재설치하는 동작으로 인해서
location permission에 대한 에러가 계속 났었는데
이를 해결하였습니다.
merge conflict 해결 과정에서 실수록 누락했었던 ')' 기호를 재삽입했습니다.
BottomBar item에서 더 이상 label이 뜨지 않아서
기존 text로 노드를 찾던 방식에서 tag를 통해 노드를 찾는 방식으로 수정하였습니다.
MyPageScreen
- Follower, Following 클릭시 popup이 뜨는지 테스트
- 내가 작성한 리뷰를 클릭시 reviewDetailScreen으로 이동하는지 테스트
SocialScreen
- 랜덤하게 피드로 뜨는 리뷰를 클릭시 reviewDetailScreen으로 이동하는지 테스트
기타
- testcode들에서 context를 lateinit var로 설정하였습니다.
- test를 원활하게 하기 위해서 modifier로 testTag를 달아주었습니다.
RestaurantDetailScreen
-back button 클릭시 ReviewDetailScreen으로 이동하는지 테스트
-첫 번째 리뷰의 writer 클릭시 FooriendScreen으로 이동하는지 테스트
-'좋아요'(isLike) 버튼이 보이고 클릭 테스트
-'싫어요'(isDislike) 버튼이 보이고 클릭 테스트
TODO: '좋아요', '싫어요' 버튼 클릭시 sorting이 제대로 되는지 테스트

ReviewDetailScreen
-back button 클릭시 Social Screen으로 이동하는지 테스트
-writerName 클릭시 FooriendScreen으로 이동하는지 테스트
-restaurantName 클릭시 RestaurantDetailScreen으로 이동하는지 테스트
TODO: deletionButton 클릭시 리뷰 삭제 테스트

etc: MyInformationTest class의 파일 이름이 MyInformationScreen으로만 되어 있었어서 MyInformationScreenTest로 수정
login test에 있었던 에러를 고쳤습니다.
-loginScreen에서 coroutineScope을 main Thread에서 동작하도록 변경해서 test 진행
앱을 처음시작할때 disable auto login 으로 수정됨에 따라
test code를 진행할 때 access tocken을 mechanicjo 계정의 access token을 발급하여 진행하도록 수정하였습니다.
@mechanicjo
Copy link
Contributor Author

mechanicjo commented Nov 29, 2023

아무래도 앱을 시작했는데 어떤 계정이 이미 로그인 되어있는 것은 어색한 것 같았습니다. (마치 location permission을 체크하지 않았는데 자동으로 체크하는 느낌.. 이었습니다)
그래서 테스트 시작시에 mechanicjo 계정의 access token을 미리 발급 받고 이를 통해 테스트틀 진행하도록 수정하였습니다. 때문에 access token 코드가 하드코딩으로 들어가 있습니다. (그래도 덕분에 defalut-login이 필요 없어졌습니다!!!)
다만 제 기기에서만 그런건지 모르겠는데 app 실행시에 MyInformaionScreen에서 로그아웃 클릭시 bottomNavigationbar가 새로운 LoginScreen에 표시되는 버그가 있습니다. 목요일에 다른 기기로 확인해보고 처리하겠습니다.

mechanicjo and others added 9 commits November 30, 2023 00:38
기존에 testcase를 작성해두었던 screen이나 component들에 대하여 테스트 케이스를 추가로 작성하였습니다.
postingScreen에 대한 testcase를 추가하였습니다.
SignUpScreen에 대한 테스트 코드를 작성하였습니다.
테스트 failure
- ID, NAME 등이 공란이어도  SignUp 버튼 클릭시에 login screen으로 이동하는 버그
- PASSWORD confirm testing 에서 오류 발생
HomeScreen과  FooriendScreen에 대한 testcase를 추가하였습니다.
test시에 동기화를 위한 waiting을 좀 넣어봤습니다.
SignUpScreen에 대한 테스트 코드 작성 완료했습니다.
인터넷 이슈로 1초 이내에 응답이 없는 경우가 있어서 10초로 waiting시간의 최댓값을 늘렸습니다.
@ozeeeno
Copy link
Contributor

ozeeeno commented Dec 2, 2023

good to go

@ozeeeno ozeeeno merged commit 5cce3eb into main Dec 2, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants