단원 테스트가 뭐예요?

단원 테스트가 뭐예요?


"테스트와 TDD 경험"이라는 업무 요청에서 보실 수 있습니다.하지만 나처럼 테스트에 대해 아무것도 모르고 있을 수도 있다. 우수한 개발자들이 사용하고 있다는 것을 들어본 적이 있다.그런데 얘네는 뭐야?그것들은 어떻게 일합니까?

🤔 테스트부터 시작하겠습니다.


QA가 나에게 코드가 무엇을 해야 하는지에 대해 자신이 있느냐고 물었을 때, 나는 항상 "아니오"라고 대답했다. 왜냐하면 나는 내가 일을 망칠 수 있다는 것을 알고 있기 때문이다.이것은 내가 자신의 인코딩 기술을 믿지 않기 때문이 아니다.나는 사람이기 때문에, 우리는 잘못을 저질렀다.이것이 바로 제가 테스트를 배우기 시작한 이유입니다. 왜냐하면 우수한 테스트 세트는 당신이 도입할 버그를 포획하는 데 도움을 줄 수 있기 때문입니다.
어떤 일을 테스트하여 결정하기;우리의 예에서, 우리는 우리의 코드가 계획대로 운행되기를 바란다.내 모호한 말로 말하자면, 테스트는 당신이 작성한 코드입니다. 당신이 작성한'생산'코드가 실행해야 할 작업을 수행하고 있는지 검증하는 데 사용됩니다.

👩‍💼👨‍💼모듈


An individual thing or person regarded as single and complete but which can also form an individual component of a larger or more complex whole.


발췌 lexico.
우리의 예에서, 하나의 단원은 하나의 클래스나 함수일 수 있으며, 그룹을 나누어 응용 프로그램을 만들 수 있다.우리는 모든 단원이 해야 할 일을 완성할 수 있도록 우리의 단원을 테스트할 수 있다. 만약 우리가 이렇게 한다면 우리는 단원 테스트를 하고 있는 것이다.

👩‍💼👨‍💼 테스트 장치


예를 들어, 우리는calculator라는 반짝이는 이전에 개발되지 않은, 독특한 응용 프로그램을 개발하고 있다.이 응용 프로그램에서 우리는sum()이라는 함수를 가지고 있는데, 이것은 두 숫자의 덧셈을 실현했다.코트린에서 이게.
fun sum(int a,int b) : Int {
    return a+a;
}
그리고 우리는 UI를 만들기 시작했다. 왜냐하면 UI가 훌륭하기 때문이다. 나는 UI를 만드는 것을 좋아한다. 우리가 응용 프로그램을 실행하고 그것을 테스트하기 시작할 때, 우리는 항상 작용하지 않기 때문에 놀랄 것이다.왜 이것은 작용하지 않습니까?매개 변수는 a와 b입니다. 저를 믿으세요. 이런 상황이 발생할 것입니다.
구축 시간이 좀 걸리면 문제가 발생합니다.완전한 번역 시간이 당신의 생산력 절차를 중단시킬 수 있다는 것을 알 수 있습니다.나는 네가 나처럼 쉽게 마음을 분산시키지 않고 내가 무엇을 하는지 잊어버리기를 바란다.단원 테스트는 코드가 해야 할 일을 하고 있다는 것을 검증했기 때문에 이 두 가지 문제를 해결하는 데 도움을 줄 수 있다.단원 테스트는 프로그램을 컴파일하고 수동으로 테스트하는 것보다 더 빨리 실행되기 때문에 첫 번째 테스트를 만듭니다.
거의 모든 언어는 단원 테스트 프레임워크를 가지고 있다.언어 단위 테스트 프레임워크here를 검사할 수 있습니다.이 예에서 저는 Kotlin을 사용했기 때문에 JUnit을 사용할 것입니다.
단원 테스트는 보기에 이렇습니다. 기본적으로 테스트 폴더에 있습니다.
    @Test
    fun calculator_sum_shouldReturnTheSumBetweenTwoParameters() {
        //Given
        val calculator = Calculator()
        //When
        val result = calculator.sum(2, 1)
        //Then
        assertEquals(3,result)
    }
이러한 테스트의 해부 구조를 분석하면 우리는 다음 일을 관찰할 수 있다.
  • 이것은 테스트의 주석임을 나타낸다.
  • 는 [Unit\u Whatweare Testing\u ExpectedBehavior]의 함수 이름을 나타냅니다.
  • 시험 주체.
  • 테스트는 Arrange-Act 단언 또는 주어진 When-Then 모드를 따라야 합니다.나는 사용자 이야기가 생각나기 때문에 주어진, when, then 모드를 좋아한다.네가 쉽게 마음을 분산시킬 때, 그것은 너를 잘 도울 것이다.우리 이런 패턴에 대해 이야기합시다!
  • : 이 절에서 필요한 대상을 만들 것입니다.
  • : 여기서 우리는 방법을 호출하여 테스트를 진행한다.
  • 그리고: 마지막으로 마지막 절에서 우리는 단언했다.

  • 제가 사용하는 것은 Intellij Idea입니다. 그래서 테스트 근처에 재생 단추가 있습니다. 우리가 그것을 누르면 테스트가 실패했다는 메시지가 표시됩니다.

    우리의 테스트는 실패했다. 왜냐하면 우리의 함수는 첫 번째 매개 변수 사이의 합을 되돌려주고 있기 때문이다🤦‍♂. 이제 함수를 다음과 같이 변경할 수 있습니다. 함수는 통과될 것입니다!
    fun sum(int a,int b) : Int {
        return a+b;
    }
    

    너무 신기하다나는 지금 녹색이 내가 가장 좋아하는 색 중의 하나가 되었다는 것을 인정해야 한다. 왜냐하면 그것은 테스트를 통과했을 때 표시된 색이기 때문이다.
    Kotlin 주의: Kotlin에서 테스트의 이름을 더 읽을 수 있도록 역기호로 포장할 수 있습니다!
    @Test
    fun calculator sum should Return The Sum Between Two Parameters() {
    //Given
    val calculator = Calculator()
    //When
    val result = calculator.sum(2, 1)
    //Then
    assertEquals(3,result)
    }

    🔺 테스트 피라미드


    우리는 단원 테스트가 무엇인지 보았지만, 더 많은 유형이 있다.
  • 단원 테스트는 우리가 본 테스트에 앞서 언급한 바와 같이 주제만 있다.
  • 통합 테스트는 두 개 또는 여러 개의 단원이 그에 상응하는 방식으로 함께 작업하는 것을 검증했다.
  • 단부터 단까지의 테스트 검증은 모든 단원이 응당한 방식에 따라 함께 작업한다.Android의 엔드 투 엔드 테스트에는 UI 테스트가 포함됩니다.
  • 우리는 세 가지 유형의 테스트를 가지고 있기 때문에, 합리적으로 그것들을 분리해야 한다.모든 테스트는 통합 테스트의 끝에서 끝까지의 테스트가 될 수 없다.다행히도 테스트 피라미드라고 불리는 테스트를 어떻게 나누어야 하는지 잘 설명하는 그림이 있다.

    테스트 피라미드는 마이클 코헨이 《민첩한 성공》이라는 책에서 만든 것이다.그는 단원 테스트는 기초가 되어야 하고, 그 다음은 통합 테스트이며, 마지막은 끝에서 끝까지 테스트해야 한다고 지적했다.

    🤓 테스트의 이점


    테스트 세트가 있을 때, 이것은 백업 네트워크와 같아서 새로운 기능을 만들거나 코드를 재구성할 때 새로운 버그를 도입하지 않도록 도와줍니다.그 밖에 당신의 테스트는 훗날의 개발자들이 기능이 무엇을 하고 있는지 더 잘 이해하는 데 도움을 줄 수 있습니다. 테스트가 가장 좋은 문서이기 때문입니다.
    지금 이 정도야!나는 네가 이 게시물을 좋아하길 바란다.만약 당신이 좋아한다면, 당신의 친구와 동료와 공유하는 것을 잊지 마세요. 그러면 그들은 테스트에 관한 더 많은 정보를 얻을 수 있습니다.

    연락 유지


    채팅:
    🐦
    📘 Facebook
    📷

    좋은 웹페이지 즐겨찾기