본문 바로가기

BackEnd/백엔드

코드 프레임 워크 가져오기 / 단위테스트(Unit test)

반응형

- vscode에서 전체적인 코드 프레임워크는, vscode좌측의 돋보기 모양을 눌러 키워드를 서칭하여, 가져오는 것이 편리하다. 그리고 내가 만드려는 API의 기능에 맞게 일부 코드만 수정하면 좋다. 

- 그리고, query문은 vscode에서 타이핑 하지 말고, 우선적으로 mysql로 가서 테스트를 해본다.

 

mysql workbench쿼리문 예시:

더보기
update recipe
set is_publish = 2
where id = 0;

 

vscode에서의 응용:

더보기
class RecipePublishResource(Resource): # 레시피 공개, 임시저장
    # 레시피를 공개한다.
    def put(self, recipe_id): # put이라는 메소드를 처리하는 함수
       
        # 해당 레시피 아이디를 가지고, 데이터베이스에서 publish 컬럼을 1로 바꿔준다.
        # 데이터 업데이트
       
        try :
            # 데이터 업데이트
            # 1. DB에 연결
            connection = get_connection()

            # 2. 쿼리문 만들기
            query = ''' update recipe
                        set is_publish = 1
                        where id = %s;'''
           
            record = (recipe_id, )

            # 3. 커서를 가져온다.
            cursor = connection.cursor()

            # 4. 쿼리문을 커서를 이용해서 실행한다.
            cursor.execute(query, record)

            # 5. 커넥션을 커밋해줘야 한다 => 디비에 영구적으로 반영하라는 뜻
            connection.commit()

            # 6. 자원 해제
            cursor.close()
            connection.close()

        except mysql.connector.Error as e :
            print(e)
            cursor.close()
            connection.close()
            return {'error' : str(e)}, 503

        return {'result': 'success'},200 # 클라에게 응답해주는 코드

 

- 해당 코드 잘 작동하는 지 확인하고, vscode로 돌아와서, 서버 실행 시킨다음에, postman에서 해당 코드가 잘 동작하는지 검증을 해야한다. 

(postman API 작성 화면)

- PUT은 바디가 필요없다. 이미 URL에 정보가 포함되어있기 때문. 

 

{“result”:”success”}로 응답을 잘 받았다면, mysql가서 확인해보자. ispublish가 바뀌었을 것이다. 

=> unit test, 단위 테스트

단위 테스트를 많이 하면 에러/버그를 양산할 가능성이 줄어든다.

반응형