> Java > java지도 시간 > JUnit은 `System.out.println()` 출력을 어떻게 효과적으로 테스트할 수 있습니까?

JUnit은 `System.out.println()` 출력을 어떻게 효과적으로 테스트할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-28 16:17:54
원래의
188명이 탐색했습니다.

How Can JUnit Effectively Test `System.out.println()` Output?

System.out.println() 출력에 대한 JUnit 테스트

레거시 애플리케이션에서는 표준 오류 메시지에만 의존할 경우 문제 해결이 어려울 수 있습니다. 콘솔에 인쇄됩니다. 이를 완화하기 위해 JUnit은 콘솔 출력을 캡처하고 어설션하는 방법을 제공합니다.

System.out.println() 출력을 테스트하려면 다음 접근 방식을 고려하세요.

  1. 출력 캡처 초기화:

    • ByteArrayOutputStream 객체 생성 (예: outContent 및 errContent)를 사용하여 출력 및 오류 스트림을 저장합니다.
    • System.setOut(new PrintStream(outContent)) 및 System.setErr(new PrintStream(errContent))을 사용하여 콘솔 스트림을 이러한 스트림으로 리디렉션합니다. 개체.
  2. 테스트 실행:

    • System.out.println(output) 또는 System.out.print를 호출합니다. (출력) 의도한 것을 포착하기 위한 테스트 방법 출력.
  3. 어설션 출력:

    • assertEquals(예상, 실제) 메서드를 사용하여 캡처된 출력( outContent 또는 errContent)를 예상대로 출력.

테스트 사례 예:

@Test
public void testOut() {
    System.out.print("hello");
    assertEquals("hello", outContent.toString());
}

@Test
public void testErr() {
    System.err.print("error occurred");
    assertEquals("error occurred", errContent.toString());
}
로그인 후 복사

참고: System.setOut()을 확인하세요. System.setErr() 호출은 OriginalOut 및 OriginalErr을 사용하여 각 테스트 후에 되돌려집니다. 그렇지 않으면 후속 테스트 중에 NullPointerException이 발생할 수 있습니다.

위 내용은 JUnit은 `System.out.println()` 출력을 어떻게 효과적으로 테스트할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿