我编写了一个类,它从控制台输入数据,并在main方法中输入参数。main方法针对不同的控制台输入调用不同的方法,并且针对不同的参数调用不同的函数。所以我想通过模仿文件中的这些输入来使用Junit测试此主要方法。我该怎么做?junit中是否有任何特殊规定来测试该类的主要方法?
要提供来自文件的输入,请创建一个FileInputStream
并将其设置为System.in
流。您可能要在main方法完成后将原始文件放回原处,以确保以后使用它的所有内容仍然有效(其他测试,JUnit本身...)
这是一个例子:
@Test
public void testMain() throws IOException {
System.out.println("main");
String[] args = null;
final InputStream original = System.in;
final FileInputStream fips = new FileInputStream(new File("[path_to_file]"));
System.setIn(fips);
Main.main(args);
System.setIn(original);
}
在您的实际代码中,您将需要处理任何IOExceptions并使用比文件的完整路径更好的方法(通过类加载器获取),但这为您提供了总体思路。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句