테스트 이름에 대한 고민

김동영·2025년 3월 7일
0
post-thumbnail

환경

  • java / SpringBoot
  • Groovy / Spock Framework

고민

메소드에 집중 vs 의미 전달에 집중

1) 메소드 집중

  • 테스트 이름을 메소드 명을 중심으로 작성함.

  • (내가 생각하는)장점

    • 어떤 메소드에 대한 테스트인지 알 수 있음.
    • 메소드 > 요구사항 순서로 정리하여 볼 수 있음(jacoco)
  • (내가 생각하는)단점

    • 메소드 이름이 난해하다면 메소드에 대한 주석 또는 기능을 분석해야 하는 단점이 있음.

      // 무슨 기능이길래 레포지토리 저장을 호출하는지 유추하기 어려움.
      def "methodv1() 성공 - 레포지토리 저장을 호출한다."() {
        given:
        def request = REQUEST
      
        when:
        methodv1(request)
      
        then:
        noExceptionThrown()
        1 * repository.create(_)
      }
    • 코드 리뷰 시, 동료 개발자는 해당 메소드 이름을 몰라 리뷰에 어려움이 발생할 수 있음.

2) 의미 전달에 집중

  • 호출되는 메소드보다 테스트 목적 자체를 중심으로 작성함.

  • (내가 생각하는) 장점

    • 어떤 행위(요구사항, 목적) 를 테스트하는지 좀더 친절하게 설명함.
      jacoco 의미 전달
  • (내가 생각하는) 단점

    • 어떤 메소드를 테스트하는지 확인하기 어려움

3) 결론

  • 테스트는 요구사항에 올바르게 맞는지를 확인하기 위한 과정이라고 생각함.
    메소드 테스트 자체가 목적 X => 요구사항에 부합하는지를 테스트 O
  • 요구사항을 테스트하는데 있어 메소드가 사용되는 것.
  • 따라서 의미 전달에 집중하는 것이 올바르지 않을까 생각함.
    작성일 기준...
profile
k8s, 프레임워크와 함께하는 백엔드 개발자입니다.

0개의 댓글