测试用例null时间异常



我在为这种情况编写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");
    }
}`

所以我可以检查输入文件和输出文件是否相同。(实际上,当我运行acutal程序时,它是一样的,但我只是无法制作测试用例。)

这不是调用main的方式。

如果没有指定任何参数,则args变量不为null;它是一个空数组。

Memman.main(new String[]{});

您也可以使用varargs而不是数组,然后只调用不带参数的main。

Edit:正如Holger所指出的,看起来您正试图使用setSystemIn()将参数传递到main()方法中。那行不通。相反,您应该将它们传递到数组中:

Memman.main(new String[]{"10", "32", "P1sampleInput.txt"});

这是谷歌搜索"junit pass arguments to main"的第一个结果:在Eclipse 中将命令行参数传递给junit

最新更新