android에서 TDD에 대한 기초 지식

5574 단어 androidtestingkotlin

테스트는 무엇입니까? 왜 테스트 용례를 작성해야 합니까?

  • 간단한 테스트는 코드가 작동하는지 확인하는 것이다.
  • 하지만 간단하게 테스트할 수 있다면 테스트 드라이브 개발이 무슨 소용이 있겠는가?🤔🤔
  • 이곳의 문제는 간단한 코드를 테스트하는 것이다. 응용 프로그램을 열거나 코드를 실행하여 내비게이션을 해야 한다.
  • 그래, 너는 한 번만 할 수 있지만, 만약 네가 몇 개의 테스트 용례가 있다면, 너는 반드시 너의 코드를 테스트해야 한다. 너는 많은 시간을 낭비할 것이다.
  • TDD(테스트 드라이브 개발)는 여기서 주어진 테스트 용례를 사용하여 특정 코드를 테스트하고 모든 테스트 용례를 검사합니다.
  • Android의 테스트 이해


  • JUnit-JUnit은 이미 우리의Gradle 의존 항목에 포함되어 있으며, JUnit을 사용하면 우리는 테스트 과정을 자동화할 수 있다.
  • 여기서 우리는 각종 테스트 용례의 서로 다른 입력을 사용하여 응용 프로그램의 기능을 검사하고 최종 결과와 예상 결과를 사용하여 검사한다.
  • 테스트는 세 가지-

  • 단원 테스트 -
    이것들은 우리 프로젝트 중 가장 빠른 테스트이다
    어플리케이션 테스트를 위한 단일 기능
    이러한 테스트는 어플리케이션
  • 의 70%를 차지합니다.

  • 통합 테스트 -
    우리 응용 프로그램의 두 구성 요소가 어떻게 협동하여 작동하는지 테스트하다
    i. 테스트 응용 프로그램의 서로 다른 구성 요소 간의 상호작용.
    그것은 통합 테스트와 다르다 (백그라운드에서 응용 프로그램이 실행되어야 함)
    어플리케이션
  • 의 경우 이러한 테스트가 20%를 차지합니다.

  • UI 테스트 -
    테스트 프로그램의 모든 구성 요소가 함께 실행됩니다
    어플리케이션
  • 테스트의 10% 를 차지합니다.
  • 대부분의 테스트 부분은 단원 테스트와 통합 테스트
  • 를 포함한다

    어떻게 작성된 테스트 용례, 무엇이 TDD입니까?

  • TDD는 기능을 실현하기 전에 테스트 용례를 작성하는 과정
  • 좋은 테스트 작성 -
  • 기본적으로 실현되거나 내용이 없는 함수를 작성한다.
  • 함수의 첫 번째 실현에 실패할 가능성이 가장 높은 테스트 용례를 작성합니다.
  • 현재 우리의 함수는 상술한 모든 테스트 용례를 통과하지 못했기 때문에 우리는 모든 테스트 용례가 통과될 때까지 논리를 실현했다.
  • TDD에서 우리는 지금 무엇이 단언인지 단언할 수 있다.단언은 우리의 테스트 용례가 통과되었는지 실패했는지 확인하기 위해서이다.
  • 인코딩을 시작합시다!!


    To get started first I'm gonna start with a simple way to show the basics of unit testing, which can be applied in a real project

  • 기본적으로 각 항목에 세 개의 의존항이 있습니다. 아래와 같습니다.
  • testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    

    You may have noticed 'testImplementation' and 'androidTestImplementation' and also 'androidTest' and 'test' in the root package these are called source sets.

    androidTest Now the Integrated Tests belong to the 'androidTest-Source set' which means they require an android emulator to run the tests. and to add dependencies to this source set we use 'androidTestImplementation' in build.gradle file.

    test And the tests that don't require any android components such as context. these tests run on JVM and run fast. and to add dependencies to this source set we use 'testImplementation' in build.gradle file.



    이론은 이미 충분하다
  • 우리는 TDD를 사용하여 CodeForces 문제를 해결할 것이다
    A. Magnets
  • 이 문제에서 우리는 수평 방식으로 배열하면 몇 개의 자석을 찾을 수 있는지 찾아내야 한다.
  • 객체 자석 만들기
  • 정수와 문자열을 입력으로 하고 그룹, 즉 정수를 출력하지 않는 함수를 만듭니다.이제 자석을 마우스 오른쪽 버튼으로 클릭하고 생성 > 테스트
  • 테스트 라이브러리로 JUnit4를 선택하고 OK 키를 누른 다음 테스트 소스 세트를 선택합니다.
  • 다음 의존항을 추가하여 동기화한 후 다음과 같은 방식으로 코드 강제 테스트 용례를 만들고 상기 단계에서 만든 Magnetstest를 실행합니다.
  • testImplementation 'com.google.truth:truth:1.0.1' 
    // to make assertions easy and readable
    
  • 우리의 결과는 시종 0이고 테스트 용례와 일치하지 않기 때문에 우리 두 테스트 용례는 모두 실패했다.
  • 현재 다음과 같은 함수의 정확한 실현을 실현한 후에 우리는 두 가지 테스트 용례를 통과했다.
  • object Magnets {
        fun noOfGroupsOfMagnets(n : Int, magnets: Array<String>) : Int{
            var result = 0
            for(i in 0..n-2) if (magnets[i]!=magnets[i+1]) result++
            return ++result
            // ~~ simple solution ~~
        }
    }
    

    DEV.to에서 따라와.
    .ltag__ 사용자 id__454808.작업 버튼 따르기
    배경색: #2e0338!중요했어
    #fffff!중요했어
    테두리 색상: #2e0338!중요했어
    }

    팔레스 후세인


    Android Developer
    FareesHussain
    TDD에 대한 자세한 내용은

    좋은 웹페이지 즐겨찾기