java 方法被调用_java – 测试该方法被调用

至于是否值得测试,这取决于你输出的原因.我通常在编写命令行实用程序时测试System.out调用,因为这是用户界面,文本输出很重要.它甚至都不难 – 只需要常规的Java代码.

以下技术显示了如何捕获System.out的值.你甚至不需要一个模拟框架.请注意,它存储“真正的”System.out,因此它可以将其放回最后.如果不这样做,您的其他测试/代码很快就会变得混乱.

import static org.junit.Assert.*;

import java.io.*;

import org.junit.*;

public class ConsoleHandlerTest {

private PrintStream originalSysOut;

private ByteArrayOutputStream mockOut;

@Before

public void setSysOut() {

originalSysOut = System.out;

mockOut = new ByteArrayOutputStream();

System.setOut(new PrintStream(mockOut));

}

@After

public void restoreSysOut() {

System.setOut(originalSysOut);

}

@Test

public void outputIsCorrect() {

new ConsoleHandler().write("hello");

assertEquals("message output", "hello".trim(), mockOut.toString().trim());

}

}


版权声明:本文为weixin_29417899原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。