Junit 프레임워크:
Junit은 오픈 소스 Java 유닛 테스트 프레임워크입니다.
오늘은 junit5를 소개하겠습니다. junit5는 Junit Platform, Junit Jupiter, Junit Vintage 등 세 가지 하위 프로젝트 모듈로 구성되어 있습니다. Java 8 이상을 지원합니다. 여기서 사용하는 편집기는 IntelliJ IDEA입니다. 전체 프로젝트의 메소드 인터페이스가 원활한지 최종 결과만 확인하면 됩니다. 각 단위 테스트 케이스는 상대적으로 독립적이며 Junit에 의해 시작되고 자동으로 호출됩니다. 추가 호출 문을 추가할 필요가 없습니다.
다른 테스트 방법에 영향을 주지 않고 테스트 방법을 추가, 삭제 및 차단합니다.
Junit은 화이트박스 테스트에 주로 사용됩니다.
1. 테스트 계획 단계: 요구 사항 사양에 따라 테스트 일정을 개발합니다.
2. 테스트 설계 단계: 코드의 기능에 따라 테스트 케이스를 수동으로 설계하여 기본적인 기능 테스트를 수행합니다. 프로그래밍 지침에 따라 소프트웨어 구조가 구분되고 특정 표준화된 방법에 따라 테스트 케이스가 설계됩니다.
3. 테스트 실행 단계: 테스트 케이스를 입력하고 테스트 결과를 받습니다.
4. 테스트 요약 단계: 테스트 결과를 코드의 예상 결과와 비교하고, 오류의 원인을 분석하고, 오류를 찾아 해결합니다.
다음으로 내부 주석을 소개하겠습니다.
@Test: 속성을 선언하지 않고 테스트 방법을 나타냅니다.
@ParameterizedTest: 메서드가 테스트 메서드임을 나타냅니다. 또한 이 주석을 사용하면 다른 사람을 사용하여 테스트 메서드를 여러 번 실행할 수도 있습니다.
@RepeatedTest: 이 주석을 사용하면 테스트 메서드에서 반복 실행 횟수를 맞춤 설정할 수 있습니다.
@TestFactory: 메서드가 데이터 기반 동적 테스트 데이터 소스를 기반으로 함을 나타냅니다.
@Displayname: 테스트 클래스 또는 테스트 메서드에 대한 사용자 정의 표시 이름을 선언합니다.
@BeforeEach: 각 테스트 메서드가 실행되기 전에 지정된 메서드가 실행됨을 나타냅니다.
@AfterEach: 각 테스트 메서드가 실행된 후에 지정된 메서드가 실행됨을 나타냅니다.
@BeforeAll: 현재 클래스의 모든 테스트 메서드보다 먼저 실행되며 이 메서드에는 일부 초기화 코드가 포함될 수 있습니다.
@AfterAll: 현재 클래스의 모든 테스트 메소드 이후에 실행됩니다.
@Disabled: 테스트 클래스 또는 메서드가 유효하지 않음을 나타냅니다.
어설션:
실패: 어설션 테스트에 실패했습니다.
AssertTrue/asserFalse: 참 또는 거짓을 주장합니다.
AssertNull/assertNotNull: Assert가 null이거나 null이 아닙니다.
assertEquals/assertNotEquals: 두 값이 동일하지 않다고 주장합니다.
AssertArrayEquals: 모든 배열 요소가 동일하다고 주장합니다.
AssertSame/assertNotSame: 두 개체가 동일한지 여부를 확인합니다.
AssertThrows/assertDoesNotThrow: 예외가 발생하는지 여부를 확인합니다.
AssertAll: 여러 조건이 충족되는지 확인
아래에서 클래스를 만들고 여러 메서드를 만듭니다.
package test;//包机制 import java.lang.reflect.Array; public class MixedOperation { public int mixeOperation(int x,int y){ return division((x+y),y); } public int division(int x,int y){ int result=(x/y); return result; } public static void main(String[] args) { MixedOperation mixedOperation=new MixedOperation(); System.out.println(mixedOperation.mixeOperation(5,1)); } }
MixedOperation이라는 클래스를 만듭니다.
package test; import org.junit.jupiter.api.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; public class MixedOperationTest { private MixedOperation mixedOperation; @BeforeEach public void init(){ mixedOperation=new MixedOperation(); } @Test public void successTest(){ System.out.println("run a test:x=4,y=2"); int result=mixedOperation.mixeOperation(4,2); Assertions.assertEquals(3,result); } /* @DisplayName("失败") public void errorTest(){` System.out.println("run a test:x=4,y=0"); ArithmeticException exception=new ArithmeticException( ArithmeticException.class -> { mixedOperation.mixeOperation(4, 0); } ); }*/ @Disabled("参数") @Test @DisplayName("参数") @ParameterizedTest @CsvSource({"6,3,3","5,2,3","6,2,4"}) public void caTest(int x,int y,int excepted){ System.out.println("run a test :x="+x+"y="+y); System.out.println(excepted); int t= mixedOperation.mixeOperation(x,y); Assertions.assertEquals(excepted,t); } @Disabled @Test public void Next(){ System.out.println("抛出一个异常"); System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0))); } @Disabled @Test void error(){ Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);}); } @Test void sure(){ int result=mixedOperation.mixeOperation(4,2); Assertions.assertTrue(3==result);//断言相等 } }
여기서 MixedOperationTest Class라는 테스트를 만듭니다. 추천: "
java 비디오 튜토리얼위 내용은 화이트박스 테스트 프레임워크(JUnit) 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!