인프런 커뮤니티 질문&답변

송원님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

16-TDD

softdelete는 어떤 식은 test 코드를 짜야할까요?

해결된 질문

작성

·

241

0

 jest 를 이용하여 테스트코드를 짜고 있는데 처음이라 너무 어렵네요.

 

softdelete는 어떤식으로 테스트코드를 짜야될까요?

그리고 조인해서 결과 값을 뽑을 때 테스트코드를 어떻게 짜야할지 감이 안옵니다.

구글링해도 자료가 별로 없네여...

답변 2

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 소민님!

test코드는 너무 어렵게 생각하지 마시고,
"내가 손으로 매번 클릭해서 제대로 결과 나오는지 postman, playground로 확인하기 힘드니까 이거 대신해주는 프로그램 만들기" 정도로 접근하시면 이해하기가 한결 수월합니다!^^
(또한, 정답이 없다는 것을 반드시 기억하세요! 안그러면 진행이 안돼요!)

위 논리에 따라, softdelete를 검증한다면 테스트코드 없이 테스트하는 과정을 생각해보시면 좋을것 같아요!

"삭제하기 -> DB갔더니 있네? -> 조회하기 했는데 안나오네?"

위 3단계로 모두 성공했는지를 코드로 구현하시면 되겠죠?!^^

 

조인도 위와 같은 논리에서 시작하면 됩니다!
테스트코드를 먼저 생각하지 마시고, 직접 눈과 손으로 테스트를 해보시고, 내가 한 행동을 그대로 순서화하여 테스트코드로 변형해 보세요!(더 나아가 mocking이든 DB직접접근이든 원리는 결국 동일합니다!)

0

안녕하세요, 인프런 AI 인턴이에요.

softdelete에 대한 테스트 코드를 작성하는 법에 대해서 질문하셨군요. softdelete는 레코드를 삭제하지 않고 삭제 상태를 표시하는 기능을 말합니다. 이를 테스트하기 위해서는 삭제된 레코드가 쿼리 결과에 나타나지 않는지 확인하는 것이 중요합니다.

Jest를 사용하여 테스트 코드를 작성하려면 다음과 같은 방법을 사용할 수 있습니다.

  1. 삭제 플래그를 가지는 모델 생성
    삭제 플래그를 가진 모델을 먼저 생성해야합니다. 삭제된 레코드를 표시할 플래그 열이 존재해야합니다.

  2. 삭제 예정인 레코드 작성
    삭제할 예정인 레코드를 작성하고 delete 메서드를 호출하여 삭제 플래그를 업데이트합니다.

  3. 삭제된 레코드 확인
    삭제된 레코드가 실제로 조회되지 않는지 확인하기 위해 findAll 메서드를 호출하여 쿼리 결과를 검증합니다. 삭제 플래그가 true인 레코드는 결과에 나타나지 않아야 합니다.

조인을 사용하여 결과 값을 뽑을 때의 테스트 코드는 다음과 같이 작성할 수 있습니다.

  1. 필요한 모델과 관계 생성
    조인을 사용하여 결과 값을 뽑으려면 관련된 모델을 생성해야합니다. 예를 들어, 사용자와 게시물이 관계된다면 이 두 모델을 생성합니다.

  2. 데이터 작성
    조인한 결과를 검증하기 위해 적절한 데이터를 작성합니다. 사용자와 게시물 데이터를 생성합니다.

  3. 테스트 코드 작성
    테스트 코드에서는 조인한 결과를 검증해야합니다. 예를 들어, 사용자와 게시물을 조인하여 게시물 작성자와 사용자 ID가 일치하는지 확인할 수 있습니다.

구글링을 해도 자료가 별로 없다고 하셨는데, 관련 자료를 찾기 어렵다면, 공식 문서나 온라인 개발자 커뮤니티를 참고하는 것도 좋은 방법입니다. 또한, 해당 프레임워크 또는 라이브러리를 사용하는 다른 개발자들의 블로그나 오픈소스 프로젝트를 살펴보는 것도 도움이 될 수 있어요.

더 많은 도움이 필요하시면, 구체적인 코드 예시나 추가 정보를 알려주세요. 적극적으로 도와드리겠습니다. 감사합니다.

송원님의 프로필 이미지

작성한 질문수

질문하기