Web

[JUnit] 출력이 안될 때

오즈마스터 2022. 7. 14. 16:03

JUnit 테스트 시  System.out.println() 함수가 먹히지 않을 때 대처법

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Before;

@SpringBootTest
class MyApplicationTests
{
	private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
	private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
	private final PrintStream originalOut = System.out;
	private final PrintStream originalErr = System.err;	
	
	@Before(value="log()")
	public void setUpStreams() 
	{
	    System.setOut(new PrintStream(outContent));
	    System.setErr(new PrintStream(errContent));
	}

	@After(value="log()")
	public void restoreStreams() 
	{
	    System.setOut(originalOut);
	    System.setErr(originalErr);
	}
    
    @Test
	void testJpa()
	{
		System.out.println("testJpa() start~");
    }
}

하지만, 다시 위의 코드를 없애도 출력은 여전히 정상적으로 나온다. 뭐가 문제였던걸까...