junit tutorial beginners what is junit testing
초보자를위한이 JUnit 튜토리얼은 JUnit 테스트 케이스의 예와 함께 단위 테스트, 테스트 커버리지 및 JUnit 테스트 프레임 워크가 무엇인지 설명합니다.
이 JUnit 시리즈는 JUnit을 배우는 데 관심이있는 Java 또는 JUnit에 대한 지식이있는 사용자뿐만 아니라 완전 초보자 인 사용자에게 초점을 맞추기 위해 준비되었습니다.
전체 시리즈는 JUnit 4와 Junit 5의 차이점을 해석 할 수있는 방식으로 작성되었습니다.
이제 JUnit을 살펴 보자 !!
학습 내용 :
Windows 10을위한 최고의 무료 최적화 프로그램
이 JUnit 시리즈의 튜토리얼 목록
튜토리얼 # 1 : 초보자를위한 JUnit 튜토리얼 – JUnit 테스팅이란? (이 튜토리얼)
튜토리얼 # 2 : Eclipse에서 JUnit 다운로드, 설치 및 구성
튜토리얼 # 3 : JUnit 테스트 : 예제로 JUnit 테스트 케이스를 작성하는 방법
튜토리얼 # 4 : JUnit 테스트 픽스처 란 무엇인가 : JUnit 4 예제를 사용한 튜토리얼
튜토리얼 # 5 : JUnit 테스트를 실행하는 여러 방법
튜토리얼 # 6 : JUnit 주석 목록 : JUnit 4 대 JUnit 5
튜토리얼 # 7 : JUnit 무시 테스트 케이스 : JUnit 4 @Ignore Vs JUnit 5 @Disabled
튜토리얼 # 8 : JUnit 테스트 스위트 및 필터링 테스트 케이스 : JUnit 4 Vs JUnit 5
튜토리얼 # 9 : JUnit 테스트 실행 순서 : 테스트 순서 JUnit 4 Vs JUnit 5
튜토리얼 # 10 : 예제와 함께 JUnit 5 주석 @RepeatedTest를 사용하는 방법
튜토리얼 # 11 : JUnit 5 중첩 클래스 : @Nested 자습서 (예제 포함)
튜토리얼 # 12 : JUnit 5 사용자 지정 표시 이름 및 조건부 테스트 실행
튜토리얼 # 13 : JUnit 대 TestNG – 차이점은 무엇입니까
JUnit 튜토리얼
일반적인 테스트 기반 개발 (TDD) 접근 방식에서 개발자는 개발하는 코드의 모든 청크를 단위 테스트하는 데 집중합니다. 제품 테스트가 좋을수록 품질도 좋습니다. 테스트는 소프트웨어 개발 수명주기의 각 단계와 동시에 진행되어야한다는 것을 우리 모두 알고 있습니다.
요구 사항 및 분석부터 설계 및 개발, 유지 보수까지 모든 단계에는 관련 테스트 단계가 있어야합니다. 개발 후 단위 테스트는 강력한 애플리케이션을 빌드하고 최적화 된 코드를 갖추기 위해 권장되는 것입니다.
단위 테스트 란?
단위 테스트는 작은 논리 또는 코드를 테스트하여 코드의 출력이 특정 데이터의 입력 및 / 또는 특정 조건을 충족 할 때 예상 한대로인지 확인합니다. 일반적으로 단위 테스트는 다른 테스트와 독립적이어야합니다.
단위 테스트는 다른 응용 프로그램이나 타사 / 외부 서비스를 사용하여 복잡한 인터페이스를 테스트 할 수 없습니다. 단위 테스트는 메서드 나 클래스 일 수있는 작은 코드 단위 만 대상으로합니다.
개발자가 현재 논리의 문제와 현재 변경으로 인한 회귀 실패를 발견하는 데 도움이됩니다. 또한 현재 코드가 향후 구현에 어떻게 영향을 미칠 수 있는지에 대한 통찰력을 제공합니다.
테스트 범위
단위 테스트에 의해 테스트되는 코드의 비율이 호출됩니다. 테스트 범위 .
목표는 향후 회귀 테스트 스위트에 계속 추가되고 자동화 된 테스트 실행 및 검증을 증가시켜 회귀 테스트와 관련된 수동 작업을 줄이는 데 도움이되는 코드의 더 나은 테스트 범위를 갖는 것입니다.
테스트를 자동으로 실행하면 현재 코드의 변경으로 인해 발생한 소프트웨어 회귀 문제를 식별하는 데 도움이됩니다. 코드에 대한 테스트 범위가 높으면 많은 수동 테스트를 수행하지 않고도 기능을 계속 개발할 수 있습니다.
많은 사람들이 얼마나 많은 테스트 커버리지가 필수적인지 . 이 질문에 대한 답은 테스트 범위가 얼마나 중요한지에 대한 엄격하고 빠른 규칙이 없다는 것입니다. 그것은 모두 판단 적입니다. 애플리케이션 워크 플로에 대한 경험과 지금까지 발견 된 결함에 대한 과거 지식이 있으면 판단력이 향상됩니다.
효율적인 테스트가 반드시 100 % 테스트 커버리지를 갖거나 모든 단일 분기 또는 경로 커버리지에 대한 자동화 테스트 및 / 또는 단위 테스트를 통합하는 것을 의미하지는 않습니다.
필수 필드에 대한 유효성 검사 오류 메시지와 같은 특정 사소한 확인은 회귀 제품군에 포함 할 필요가없는 몇 년 동안 결함이없는 빈칸으로 남겨졌습니다.
수동 테스트 대 자동 테스트
단위 테스트는 두 가지 접근 방식을 통해 수행 할 수 있습니다.
- 수동 테스트
- 자동화 된 테스트
두 가지 접근 방식 모두에서 워크 플로는 일반적으로 유지됩니다.
C ++ sleep ()
- 테스트 케이스 만들기
- 그것을 검토
- 수정이 필요한 경우 재 작업
- 테스트 케이스 실행
- 테스트 결과 분석
다음과 같은 이유로 자동 테스트가 수동 테스트보다 선호됩니다.
수동 테스트 | 자동화 된 테스트 |
---|---|
도구의 개입없이 테스트 케이스가 수동으로 실행되는 것을 수동 테스트라고합니다. | 많은 수동 개입없이 도구의 도움으로 테스트 케이스가 실행되는 것을 자동화 된 테스트라고합니다. |
반복적 인 수작업이 포함됩니다. | 반복적 인 수작업은 피할 수 있습니다. |
수동 테스트에 대한 인간의 노력은 오류가 있고 시간이 많이 걸릴 수 있습니다. | 자동화 테스트는 수동 작업에 비해 더 빠르고 오류가 없습니다. |
필요한 테스트 리소스는 모든 테스트 케이스를 수동으로 실행하는 데 더 많으므로 리소스에 대한 투자가 늘어납니다. | 지정된 자동화 도구를 사용하여 자동화 된 테스트를 실행하는 데 필요한 테스터가 적으므로 테스트 리소스에 대한 투자가 적어 수익성이 추가됩니다. |
수동 테스트는 타임 라인 제한을 고려하여 소규모 테스트 범위로 제한되어야합니다. 따라서 많은 테스트 시나리오를 건너 뛸 위험이 있으므로 결함이 누출 될 위험도 있습니다. | 다양한 테스트 시나리오를 자동화 할 수 있으며 시간 및 리소스 위기 상황에서도 여러 번 실행할 수 있으므로 테스트 범위와 결과물의 품질이 향상됩니다. |
단위 테스트 프레임 워크
일반적인 자동화 단위 테스트 케이스의 모양과 그에 따르는 프레임 워크에 대한 다음 질문이있을 수 있습니다. 개발자는 단위 테스트 프레임 워크 자동화 된 단위 테스트 케이스를 생성합니다.
- 코드가 예상대로 논리적으로 작동하는지 확인하기 위해 특정 체크 포인트 또는 확인 기준이있는 테스트 케이스가 생성됩니다.
- 테스트 케이스가 실행되면 기준 / 조건이 통과하거나 실패합니다.
- 테스트 케이스 워크 플로우에 따라 로그가 생성됩니다.
- 프레임 워크는 통과 한 테스트 케이스와 실패한 케이스에 대한 요약 된 결과를보고합니다.
- 실패의 심각도에 따라 테스트 케이스가 더 이상 진행되지 않고 후속 실행이 중지 될 수 있습니다.
- 로그에보고되는 심각하지 않은 특정 오류가있을 수 있지만 하드 중지가 표시되지 않지만 추가 테스트 단계를 차단하지 않고 계속됩니다.
JUnit이란?
JUnit은 Java 프로그래밍 언어로 단위 테스트를 작성하고 실행하는 데 사용되는 오픈 소스 프레임 워크입니다. 가장 잘 알려진 단위 테스트 프레임 워크 중 하나입니다.
아래 이미지는 잘 알려진 다양한 자동화 단위 테스트 도구를 보여줍니다.
다음은 JUnit과 함께 패키지되는 속성입니다.
- 테스트 메서드에 대한 많은 기능을 식별, 실행 및 지원하는 수많은 주석 목록이 있습니다.
- 예상 결과를 확인하기위한 어설 션이 있습니다.
- 테스트 실행을위한 Test Runner를 제공합니다.
- JUnit은 기본 내장 템플릿을 제공하므로 작고 간단한 테스트 케이스를 즉시 작성할 수 있습니다.
- JUnit 테스트는 독립적 인 모듈을 작성하는 데 도움이되므로 테스트 범위와 애플리케이션의 품질이 향상됩니다.
- 테스트를 쉽게 만들고 실행할 수있을뿐만 아니라 개발자가 보고서 경로와 테스트 결과를 검색 할 필요가 없도록 명확하고 명확한 보고서를 개발자에게 제공합니다.
- 테스트 실행이 순조롭게 진행될 때까지 실행이 진행되는 동안 표시되는 녹색 테스트 진행률 표시 줄을 보면서 긴장을 풀고 테스트가 검증 체크 포인트에 실패하면 '빨간색'으로 경고합니다.
- 시퀀스 또는 관련 테스트 케이스 세트를 함께 배치하기 위해 테스트 스위트를 작성할 수 있습니다.
JUnit 테스트 케이스의 예
다음은 JUnit 테스트 클래스가 일반적인 Java 클래스 파일과 비교할 때 어떻게 보이는지 또는 어떻게 다른지 이해하기위한 매우 기본적인 Hello World 프로그램의 두 가지 예입니다.
예 1 :
다음은 문자열 'Hello world'가 대소 문자를 구분하므로 실행에 실패하는 문자열 'hello world'와 일치하는지 확인하는 JUnit 테스트 케이스 HelloWorldJUnit.java입니다. 따라서 두 문자열이 일치하지 않고 테스트 실패 .
HelloWorldJUnit.java의 코드
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
예 2 :
여기서 우리는 평소 자바 클래스 파일 상호 작용 와 함께 JUnit 테스트 케이스. 우리는 자바 클래스 파일 HelloWorld_Java.java String 값을 전달할 수있는 생성자와 문자열 값을 가져 오기위한 getText () 메소드를 사용합니다.
JUnit 테스트 클래스 HelloWorldJUnit.java HelloWorld_Java 용 클래스 객체가 생성되고 실제 문자열 값이 객체에 전달되도록 생성됩니다. JUnit의 assertEquals ()는 예상 문자열 값과 실제 문자열 값이 일치하는지 확인합니다.
HelloWorld_Java.java의 코드
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
HelloWorldJUnit.java의 코드
package demo.tests; public class HelloWorldJUnit{ private String s; public HelloWorld_Java(String s) { @Test public void test() { HelloWorld_Java hw=new HelloWorld_Java('Hello World'); assertEquals(hw.getText(),'Hello World'); } }
결과는 다음과 같이 두 문자열이 일치하는 것을 볼 수 있습니다. 따라서 JUnit 테스트는 통과했습니다.
junit 테스트 작성 방법
결론
JUnit이 무엇이며 무엇을하는지에 대한 간략한 개요를 제공 할 때 JUnit 자동화 된 방식으로 단위 테스트를 생성하고 실행할 수 있도록 아름답게 제작 된 프레임 워크입니다.
오픈 소스 도구이지만 번거롭지 않습니다. 테스트 케이스 생성 또는 테스트 케이스 실행 또는 실행 후보고 또는 테스트 유지 등 JUnit은 모든 측면에서 우아합니다. 예, 우아하게도 실패 할 수 있습니다. 다음 튜토리얼에서 어떻게 진행되는지 살펴 보겠습니다.
저자 정보 : 이 튜토리얼은ShobhaD. 그녀는 프로젝트 리더로 일하며 수동, 자동화 및 API 테스트 분야에서 9 년 이상의 경험을 가지고 있습니다.
앞으로도 JUNIT의 모든 측면에 대해 더 자세히 설명하겠습니다.