我在为这种情况编写JUnit测试时遇到了麻烦。我得到运行时错误。 我试过了
import junit.framework.*;
import student.TestCase;
public class MemmanTest extends TestCase {
public MemmanTest() {
// empty
}
public void testMemmanSystemIn() throws Exception {
setSystemIn("10 32 P1sampleInput.txt");
Memman.main(null);
assertTrue(systemOut().getHistory(), "P1sampleOutput.txt");
}
}`
所以我可以检查输入文件和输出文件是一样的。 (实际上,当我运行实际程序时,同样如此,但我无法进行测试用例。)
答案 0 :(得分:3)
这不是你怎么称为主。
如果未指定任何参数,则args变量不为null;这是一个空数组。
Memman.main(new String[]{});
您也可以使用varargs而不是数组,然后只调用main而不带参数。
编辑:正如Holger所指出的,看起来你正在尝试使用setSystemIn()将参数传递给main()方法。那不行。相反,你应该将它们传递给数组:
Memman.main(new String[]{"10", "32", "P1sampleInput.txt"});
这是Google搜索“junit pass arguments to main”的第一个结果:Passing command line arguments to JUnit in Eclipse