예제를 통한 Junit Assert 및 AssertEquals
Junit Assert란 무엇인가요?
Assert는 테스트 케이스의 통과 또는 실패 상태를 결정하는 데 유용한 메서드입니다. assert 메서드는 java.lang.Object 클래스를 확장하는 org.junit.Assert 클래스에서 제공됩니다.
Boolean, Null, Identical 등과 같은 다양한 유형의 어설션이 있습니다.
Junit은 테스트 케이스를 작성하고 테스트 실패를 감지하는 데 유용한 여러 가지 어설션 메서드를 제공하는 Assert라는 클래스를 제공합니다.
Assert 메소드는 클래스에서 제공됩니다. org.junit.Assert 확장되는 java.lang.객체 클래스입니다.
JUnit 어설션 방법
부울
부울 조건(참 또는 거짓)을 테스트하려면 다음 assert 메서드를 사용할 수 있습니다.
- assertTrue (조건)
- assertFalse (조건)
여기서 조건은 부울 값입니다.
널 객체
객체/변수의 초기값을 확인하려면 다음과 같은 방법을 사용합니다.
- 주장Null(객체)
- AssertNotNull(객체)
여기서 개체는 Java 대상 예 주장Null(실제);
같은
객체가 동일한지(예: 동일한 Java 객체에 대한 두 참조 비교) 또는 다른지 확인하려는 경우.
- 주장Same(예상, 실제), 다음과 같은 경우 true를 반환합니다. 예상 == 실제
- AssertNotSame(예상, 실제)
같음을 주장
두 객체의 동등성을 테스트하려면 다음과 같은 방법이 있습니다.
- 주장Equals(예상, 실제)
다음과 같은 경우 true를 반환합니다. 예상.같음(실제) true를 반환합니다.
배열이 같음을 주장
배열의 동등성을 테스트하려면 아래와 같은 메서드를 사용할 수 있습니다.
- AssertArrayEquals(예상, 실제)
배열의 길이가 동일한 경우 위의 방법을 사용해야 합니다. i, 아래와 같이 확인할 수 있습니다.
- 주장Equals(예상[i],실제[i])
- 주장ArrayEquals(예상[i],실제[i])
실패 메시지
어설션 오류를 발생시키려면 불합격() 그러면 항상 실패 판정이 나옵니다.
- 실패(메시지);
추가로 어설션 방법을 가질 수 있습니다. 끈 매개변수를 첫 번째 매개변수로 사용합니다. 어설션이 실패하면 이 문자열이 실패 메시지에 추가됩니다. 예: 실패( 메시지 ) 다음과 같이 쓸 수 있습니다.
- 주장Equals(메시지, 예상, 실제)
JUnit 주장Equals
현재 주장Equals(a,b) 에 의존하는 같음 () Object 클래스의 메소드
- 여기서는 다음과 같이 평가됩니다. a.같음(b).
- 여기서 테스트 중인 클래스는 적절한 동등 관계를 결정하는 데 사용됩니다.
- 클래스가 클래스를 재정의하지 않는 경우 같음 () 의 방법 목적 클래스의 기본 동작은 다음과 같습니다. 같음 () 방법, 즉 개체 ID입니다.
If a 그리고 b 다음과 같은 기본 요소입니다. 바이트, INT, 부울, 등이 있는 경우 assertEquals(a,b)에 대해 다음이 수행됩니다.
a 그리고 b 동등한 래퍼 객체 유형으로 변환됩니다(바이트,정수, 부울등), 그런 다음 a.같음(b) 평가됩니다.
예: 동일한 값을 갖는 아래 언급된 문자열을 고려하고, AssertTrue를 사용하여 테스트해 보겠습니다.
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
위의 Assert 문은 obj1.equals(obj2)가 true를 반환하므로 true를 반환합니다.
부동 소수점 어설션
부동 소수점 유형을 비교하려는 경우(예: 더블 or 뜨다), 추가 필수 매개변수가 필요합니다. 델타 부동 소수점 비교를 수행하는 동안 반올림 오류 문제를 방지합니다.
어설션은 아래와 같이 평가됩니다.
- 수학.abs(예상 - 실제) <= 델타
예 :
주장Equals(aDouble가치, 또 다른Double값, 0.001)
JUnit 어설션 예
아래 예에서는 다음을 사용하여 조건을 어설션하는 방법을 보여줍니다. JUnit 어설션 방법.
다음과 같은 간단한 테스트 클래스를 만들어 보겠습니다. Junit4AssertionTest.java 그리고 테스트 러너 클래스 TestRunner.java.
몇 가지 변수와 중요한 Assert 문을 생성합니다. JUnit.
이 예에서는 TestRunner.java를 사용하여 테스트 클래스를 실행합니다.
단계 1) junit에서 모든 중요한 assert 문 메서드를 포함하는 클래스를 만들어 보겠습니다.
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert(){ //Variable declaration String string1="Junit"; String string2="Junit"; String string3="test"; String string4="test"; String string5=null; int variable1=1; int variable2=2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; //Assert statements assertEquals(string1,string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1<variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
단계 2) 위 클래스를 실행하려면 테스트 실행기 클래스를 만들어야 합니다.
TestRunner.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
단계 3) 예상 출력을 단계별로 분석해 보겠습니다.
모든 주장 문을 하나씩 고려하십시오.
- 주장Equals(문자열1,문자열2);
이제 string1="Junit"과 string2="Junit"을 객체 클래스의 equals 메서드로 비교합니다. java.lang.Object.equals() 메서드에서 assertEquals 메서드 교체:
string1.equals(string2)=> true를 반환합니다.
따라서 AssertEquals(string1,string2)는 다음을 반환합니다. 참된.
- 주장Same(문자열3, 문자열4);
"assertSame()" 기능은 두 개체가 동일한 개체를 참조하는지 확인하는 것입니다.
string3=”test” 및 string4=”test”는 string3과 string4가 모두 동일한 유형임을 의미하므로 AssertSame(string3, string4)는 반환됩니다. 참된.
- 주장NotSame(문자열1, 문자열3);
"assertNotSame()" 기능은 두 개체가 동일한 개체를 참조하지 않는지 확인하는 것입니다.
string1="Junit" 및 string3="test"는 string1과 string3이 모두 다른 유형임을 의미하므로 assertNotSame(string1, string3)은 다음을 반환합니다. 참된.
- 주장NotNull(string1);
"assertNotNull()" 기능은 객체가 null이 아닌지 확인하는 것입니다.
string1= “Junit”은 null이 아닌 값이므로 assertNotNull(string1)은 다음을 반환합니다. 참된.
- 주장Null(string5);
"assertNull()" 기능은 개체가 null인지 확인하는 것입니다.
string5= null이므로 null 값이므로 AssertNull(string5)은 반환됩니다. 참된.
- 주장True(변수1
"assertTrue()" 기능은 조건이 참인지 확인하는 것입니다.
변수1=1이고 변수2=2이므로 변수1이 표시됩니다. 참된.
- 주장ArrayEquals(airethematicArrary1, airethematicArrary2);
"assertArrayEquals()" 기능은 예상 배열과 결과 배열이 동일한지 확인하는 것입니다. 배열 유형은 int, long, short, char, byte 또는 java.lang.Object일 수 있습니다.
airethematicArrary1 = { 1, 2, 3 } 및 airethematicArrary2 = { 1, 2, 3 }는 두 배열이 동일함을 보여주므로 AssertArrayEquals(airethematicArrary1, airethematicArrary2)는 반환됩니다. 참된
일곱 명 모두 다음과 같은 진술을 주장하기 때문에 Junit4AssertionTest.java 클래스는 true를 반환하므로 테스트 Assert 클래스를 실행하면 성공적인 테스트가 반환됩니다. (아래 출력 참조)
단계 4) Junit4AssertionTest.java를 마우스 오른쪽 버튼으로 클릭하고 runAs->를 클릭하세요.JUnit. 아래와 같이 출력이 표시됩니다.
위 출력은 예상대로 성공적인 테스트 결과를 보여줍니다.
제품 개요
이 튜토리얼에서는 다음에서 제공하는 모든 중요한 유형의 어설션 방법을 배웠습니다. JUnit. 또한, Assert 문의 예를 살펴보았습니다. 이는 모든 Assert 문이 true를 반환하면 테스트 GUI가 true 결과를 반환하고 단일 테스트가 실패하면 실패한 결과를 반환한다는 것을 보여줍니다.