assertions java java assert tutorial with code examples
이 Java Assert 자습서는 Java의 Assertion에 대한 모든 것을 설명합니다. 어설 션 활성화 및 비활성화, 어설 션 사용 방법, 어설 션 예제 등을 배웁니다.
이전 자습서에서 Java의 예외에 대해 이미 논의했습니다. 이것은 런타임에 발견되는 오류입니다. 예외와 유사하게 코드의 정확성을 테스트하기 위해 컴파일 타임에 사용할 수있는 다른 구문이 있습니다. 이러한 구성을 '어설 션'이라고합니다.
이 자습서에서는 Java의 Assertions에 대해 자세히 설명합니다. 우리는 Java 프로그램에서 가정 한 내용의 정확성이나 명확성을 테스트 할 수있는 구조로 Assertion을 정의 할 수 있습니다.
=> 여기에서 Java Beginners Guide를 살펴보십시오.
학습 내용 :
자바의 어설 션
따라서 우리가 프로그램에서 assertion을 실행할 때 그것은 참이라고 가정합니다. false가되거나 실패하면 JVM은 AssertionError를 발생시킵니다.
테스트 목적으로 개발 중에 어설 션을 사용합니다. 런타임시 Java에서 어설 션을 비활성화합니다.
어설 션은 일반 예외와 어떻게 다릅니 까?
일반적인 예외와 달리 Assertion은 주로 의심스러운 프로그램에서 논리적 상황을 확인하는 데 유용합니다. 또한 런타임에 throw 될 수있는 일반적인 예외와는 달리 어설 션은 런타임에 비활성화됩니다.
어설 션은 개인 메서드에 대한 매개 변수로 사용할 수있는 것처럼 개발자가 최대한 제어 할 수있는 코드의 위치에서 사용할 수 있습니다. 어설 션은 조건부 케이스에도 사용할 수 있습니다. 마찬가지로 모든 메서드의 시작 조건에는 어설 션이 포함될 수 있습니다.
애니메이션을 온라인으로 무료로보기에 가장 좋은
그러나 어설 션을 오류 메시지를 대체해서는 안됩니다. 어설 션은 공용 메서드에서 사용해서는 안됩니다. 예를 들면 인수를 확인합니다. 가장 중요한 것은 Java의 명령 줄 인수에 어설 션을 사용해서는 안된다는 것입니다.
Java에서는 어설 션이 기본적으로 비활성화되어 있습니다. 따라서 Java 프로그램에서 어설 션이 작동하려면 먼저 어설 션을 활성화해야합니다.
Java에서 어설 션 활성화
어설 션을 활성화하려면 명령 줄에서 수행해야합니다.
다음은 Java에서 Assertion을 활성화하는 일반적인 구문입니다.
java –ea: arguments
또는
java –enableassertions: arguments
예를 들어, 아래와 같이 특정 클래스에 대한 어설 션을 활성화 할 수 있습니다.
java –ea TestProgram
또는
java –enableassertions TestProgram
여기서 TestProgram은 어설 션이 활성화되는 클래스입니다.
프로그램의 assert 문에서 조건이 true이고 assertion이 활성화되면 프로그램이 정상적으로 실행됩니다. 조건이 거짓이고 어설 션이 활성화되면 프로그램이 AssertionError를 발생시키고 프로그램이 중지됩니다.
명령 줄을 사용하여 어설 션을 활성화하는 데는 다양한 변형이 있습니다.
# 1) 자바 –ea
위의 명령이 명령 줄에 제공되면 시스템 클래스를 제외한 모든 클래스에서 어설 션이 활성화됩니다.
# 2) java –ea 메인
위의 명령은 Main 프로그램의 모든 클래스에 대해 어설 션을 활성화합니다.
# 3) java –ea TestClass Main
이 명령은 Main 프로그램의 'TestClass'라는 하나의 클래스에 대해서만 어설 션을 활성화합니다.
# 4) java –ea com.packageName… 기본
위의 명령은 패키지 com.packageName 및 Main 프로그램의 하위 패키지에 대한 어설 션을 활성화합니다.
# 5) java –ea… 메인
현재 작업 디렉터리에서 이름이 지정되지 않은 패키지에 대한 어설 션을 활성화합니다.
# 6) java –esa : 인수 또는 java –enablesystemassertions : 인수
위의 명령은 시스템 클래스에 대한 어설 션을 활성화합니다.
어설 션 비활성화
명령 줄을 통해 어설 션을 비활성화 할 수도 있습니다.
Java에서 어설 션을 비활성화하는 일반적인 구문은 다음과 같습니다.
java –da arguments
또는
java –disableassertions arguments
System 클래스에서 어설 션을 비활성화하기 위해 다음 구문을 사용합니다.
java – dsa: arguments
또는
java –disablesystemassertions:arguments
Java에서 'assert'키워드
Java 언어는 개발자가 프로그램 또는 프로그램 상태에 대해 가정 한 내용을 확인할 수 있도록 키워드 'assert'를 제공합니다.
따라서 'assert'키워드를 사용하여 Java에서 어설 션을 제공하여 프로그램이 원활하게 작동하지 못하게하는 조건을 확인할 수 있습니다.
'assert'키워드는 Java 1.4에서 사용되지만 Java에서는 거의 알려지지 않은 키워드로 남아 있습니다. Java에서 assert 키워드를 사용할 때 Assert 문에서 그렇게해야합니다.
자바에서 진술 선언
Java에서 assert 문은 'asset'키워드로 시작하고 부울식이 뒤 따릅니다.
Java의 assert 문은 두 가지 방법으로 작성할 수 있습니다.
- 주장 표현;
- 표현 1 주장 : 표현 2;
두 방법 모두에서 Assert 키워드와 함께 사용되는 식은 부울 식입니다.
다음 문장을 예로 고려하십시오.
assert value >= 10 : “greater than 10”;
여기서 assert 문은 조건을 확인하고 조건이 참이면 메시지가 인쇄됩니다. 따라서 우리는 또한 우리의 메시지와 함께 주장을 할 수 있습니다.
Java에서 Assert를 사용하는 방법
지금까지 Java에서 assert 키워드와 assert 문에 대해 논의했습니다. 이제 Java에서 assert를 사용하는 방법을 보여주는 예제를 고려해 보겠습니다.
어설 션을 추가하려면 다음과 같이 간단히 assert 문을 추가하면됩니다.
public void setup_connetion () { Connection conn = getConnection (); assert conn != null; }
위의 주장을 아래와 같이 다르게 줄 수도 있습니다.
public void setup_connection () { Connection conn = getConnection (); assert conn != null: “Connection is null”; }
위의 코드는 모두 연결이 null이 아닌 값을 반환하는지 확인합니다. null 값을 반환하면 JVM은 오류 (AssertionError)를 발생시킵니다. 그러나 두 번째 경우에는 assert 문에 메시지가 제공되므로이 메시지는 AssertionError를 생성하는 데 사용됩니다.
어설 션이 활성화 된 두 번째 경우 예외는 다음과 같습니다.
Exception in thread 'main' java.lang.AssertionError: Connection is null at line numbers…
자바에서 예를 어설 션
Java에서 Assertions를 사용하는 예를 구현해 보겠습니다.
public class Main { public static void main(String() args) { try { System.out.println('Testing Assertions...'); assert true : 'We don't see this.'; assert false : 'Visible if assertions are ON.'; } catch (AssertionError e) { e.printStackTrace(); } } }
산출
위의 출력은 어설 션이 활성화되지 않은 경우 제공됩니다. 어설 션이 활성화 된 경우 두 번째 메시지 (assert false)가 표시됩니다.
이제 다른 예를 보여 드리겠습니다. . 여기서 우리는이 프로그램을 실행하는 컴퓨터에서 Java로 어설 션을 활성화했습니다.
class Main { public static void main(String args()) { String() weekends = {'Friday', 'Saturday', 'Sunday'}; assert weekends.length == 2; System.out.println('We have ' + weekends.length + ' weekend days in a week'); } }
산출
주말 길이가 assert 문에 지정된 길이와 일치하지 않으므로 위의 예외가 발생합니다. 어설 션이 비활성화 된 경우 프로그램은 어설 션 예외 대신 지정된 메시지를 표시했을 것입니다.
Java에서 어설 션이 사용되는 이유는 무엇입니까?
우리는 프로그램에서 가정 한 내용이 올바른지 확인하기 위해 Java 프로그램에서 어설 션을 사용합니다.
예를 들면 도달 할 수없는 것으로 보이는 코드에 실제로 도달 할 수 없는지 확인하려면. 또는 변수가 지정된 범위의 값을 가지고 있는지 확인하려고합니다.
우리가 그러한 가정을 할 때, 우리는 그들이 실제로 올바른지 확인하기 위해 주장을 제공합니다.
자주 묻는 질문
Q # 1) assert가 Java 예외를 던지나요?
대답: Assert는 가정이 잘못되었을 때 일반적으로 'AssertionError'를 발생시킵니다. AssertionError는 Error 클래스에서 확장됩니다 (궁극적으로 Throwable에서 확장 됨).
Q # 2) Java에서 assert가 실패하면 어떻게됩니까?
대답: 어설 션이 실패한 프로그램에 대해 어설 션이 활성화되면 AssertionError가 발생합니다.
Q # 3) 어설 션은 Java에서 무엇을 반환합니까?
대답: assert 문은 프로그램에서 발생할 것으로 예상되는 부울 조건을 선언합니다. 이 부울 조건이 false로 평가되면 어설 션이 활성화 된 경우 런타임에 AssertionError가 제공됩니다.
가정이 정확하면 부울 조건이 true를 반환합니다.
Q # 4) 어설 션 오류를 잡을 수 있습니까?
대답: assert 문에 의해 throw 된 AssertionError는 Error 클래스를 확장하는 확인되지 않은 예외입니다. 따라서 어설 션은 명시 적으로 선언 할 필요가 없으며 시도하거나 포착 할 필요도 없습니다.
Q # 5) 예외를 어떻게 주장합니까?
답변 : 예외를 주장하려면 다음과 같이 ExpectedException 객체를 선언합니다.
공용 ExpectedException 예외 = ExpectedException. 없음 ();
그런 다음 Test 메서드에서 expected () 및 expect message () 메서드를 사용하여 예외를 주장하고 예외 메시지를 제공합니다.
결론
이것으로 우리는 자바의 주장에 대한이 튜토리얼을 마쳤다. Java에서 주장의 정의와 목적에 대해 논의했습니다. Java 프로그램에서 assertion을 사용하려면 먼저 명령 줄을 사용하도록 활성화해야합니다.
우리는 프로그램 레벨, 패키지 레벨, 디렉토리 레벨 등에서 어설 션을 활성화 할 수있는 다양한 방법을 탐색했습니다. Java에서 Assert 키워드 및 assert 문과 프로그래밍 예제를 사용한 자세한 구문에 대해 논의했습니다. assert 키워드 및 자산 문은 우리가 주장을 사용하는 데 도움이됩니다.
어설 션이 실패하면 AssertionError가 발생하는 것을 확인했습니다. Java의 어설 션은 대부분 컴파일 타임에 사용되며 기본적으로 런타임에 비활성화됩니다.
또한 어설 션은 대부분 애플리케이션을 테스트하기위한 테스트 케이스를 작성하는 Java의 JUnit 프레임 워크에서 사용됩니다.