200711 TIL

rang-dev·2020년 7월 11일
0

Wecode-TIL

목록 보기
47/79

200711 (토)

  • 카카오 소셜 로그인 unit test 작성
    • 어제 끙끙대던 patch에 대해 드디어 감이 좀 왔다. 이번에도 Corey의 영상을 보고 해답을 얻었다. Corey 짱....⭐️👍🏻
    • request.get으로 patch를 해서 mock data를 가져온다고해도 view에서는 그 json 데이터를 json()을 통해 딕셔너리로 변환한다. 이 조건을 만족하기 위해 테스트 파일에서 json.dumps(mocked_data)를 해서 딕셔너리형식을 json으로 변환하여 전송을 해도 view의 json()을 적용할때 에러가 발생했다. 아마 http로 request를 받아왔을때(view에서의 상황)와 아닐때(unit teset에서의 상황)의 차이때문인 것 같다.
    • 일단은 user_info라는 클래스에 json()이라는 메소드를 만들어서 사용자 정보를 리턴하도록 했다. (이것도 어제 서치하다가 봤던 방식인데 처음에는 이해가 안됐는데 이제 왜 그렇게 코드를 짜야했는지 이해가 되었다.) view에서 json()을 호출하면 실제 json()이 아니라 user_info 객체의 json()메소드가 호출되어 제대로 정보를 받아올 수 있었다.
    • 이런 방식 말고 더 깔끔한(?) 방식이 있었으면 좋겠는데 다음주에 멘토님께 여쭤봐야겠다.
    • 그리고 원래는 소셜 로그인을 하면서 사용자 정보가 있으면 로그인을 하고 없으면 db에 추가 후 바로 로그인이 되도록 만들었었는데 unit test를 하다보니 로그인은 get이고 회원가입은 post라서 나누는게 좋을 것 같다는 생각이 들어 회원가입과 로그인을 분리했다.
    • 그리고 이번 프로젝트 첫 unit test 작성 완료 🤘🏻
  • 작성한 예약 API 프론트와 맞춰보기
    • 예약 프론트를 짜신 한별님과 예약 기능 맞춰보기! 로그인 후 예약이 가능하기때문에 카카오 소셜 로그인을 담당하시는 정현님도 함께 테스트를 해주셨다.
    • 프론트에서 카카오에서 token을 보내주면 나는 그 token으로 유저 정보를 받아오고, 정보는 DB에 저장된다(회원가입). 그리고 다시 소셜 로그인을 하면 그때 우리의 자체적 token을 생성하여 다시 프론트로 보내준다. 해당 토큰은 브라우저에 저장되어 예약을 할때 로그인 데코레이터를 통해 검증된다. 그리고 사용자가 예약을 정보를 입력하고 예약하기 버튼을 누르면 예약 정보가 백으로 전송되어 DB에 저장된다.
    • 예약 API 테스트 완료 😎
profile
지금 있는 곳에서, 내가 가진 것으로, 할 수 있는 일을 하기 🐢

0개의 댓글