ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 단위 테스트 명명규칙
    우아한 테크코스/테크코스 2020. 3. 16. 21:13
    반응형

    1. MethodName_StateUnderTest_ExpectedBehavior

    명명

     메서드명_테스트상태_기대행위

    특징

     코드 리팩토링의 일부로 메서드 이름이 변경되면 테스트 이름을 변경해야 함

    예시

    isAdult_AgeLessThan18_False

     - withdrawMoney_InvalidAccount_ExceptionThrown

     - admitStudent_MissingMandatoryFields_FailToAdmit

    2. MethodName_ExpectedBehavior_StateUnderTest

    명명

     메서드명_기대행위_테스트상태

    특징

     첫 번째와 앞/뒤만 다름. 단점은 위와 동일

    예시

     - isAdult_False_AgeLessThan18

     - withdrawMoney_ThrowsException_IfAccountIsInvalid

     - admitStudent_FailToAdmit_IfMandatoryFieldsAreMissing

    3. test[Feature being tested]

    명명

     테스트[테스트중인 기능]

    특징

     테스트할 기능이 테스트 이름의 일부에 들어가므로 파악이 편함

     단, test라는 접두어가 중복됨

    예시

    - testIsNotAnAdultIfAgeLessThan18

    - testFailToWithdrawMoneyIfAccountIsInvalid

    - testStudentIsNotAdmittedIfMandatoryFieldsAreMissing

    4. Feature to be tested

    명명

     테스트할기능

    특징

     어노테이션으로 테스트명을 정의한다고 가정하여 간단히 테스트할 기능을 명시, 문서 형태로 단위 테스트를 수행하고, code smells를 방지하는 이유로 권장

     문서 형태로 단위 시험을 수행하고 코드 냄새를 방지하는 이유로 권장

    예시

    - IsNotAnAdultIfAgeLessThan18

    - FailToWithdrawMoneyIfAccountIsInvalid

    - StudentIsNotAdmittedIfMandatoryFieldsAreMissing

    5. Should_ExpectedBehavior_When_StateUnderTest

    명명

     Should_기대행위_when_테스트상태

    특징

     테스트를 쉽게 읽을 수 있어서 이용 

    예시

    - Should_ThrowException_When_AgeLessThan18

    - Should_FailToWithdrawMoney_ForInvalidAccount

    - Should_FailToAdmit_IfMandatoryFieldsAreMissing

    6. When_StateUnderTest_Expect_ExpectedBehavior

    명명

     When_테스트상태_Expect_기대행위

     

    예시

    - When_AgeLessThan18_Expect_isAdultAsFalse

    - When_InvalidAccount_Expect_WithdrawMoneyToFail

    - When_MandatoryFieldsAreMissing_Expect_StudentAdmissionToFail

    7. Given_Preconditions_When_StateUnderTest_Then_ExpectedBehavior

    명명

     Given_사전조건_When_테스트상태_Then_예상동작

    특징

     BDD (Behavior-Driven Development)의 일부로 개발 된 명명 규칙을 기반

     테스트를 세 부분으로 나눠서 사전 조건, 테스트중인 상태 및 예상되는 동작을 위 형식으로 작성

    예시

    - Given_UserIsAuthenticated_When_InvalidAccountNumberIsUsedToWithdrawMoney_Then_TransactionsWillFail

     

    출처 : https://dzone.com/articles/7-popular-unit-test-naming

    반응형

    댓글

Designed by Tistory.