为将为null的对象创建Junit测试

时间:2013-04-27 17:13:38

标签: java junit

我正在尝试制作一个Junit测试方法,该方法将根据下面显示的OpenDB设置检查randomAccessFile变量是否为null。此方法的两个可能结果是rStream(randomAccessFile)将打开用户指定的文件,或者如果文件不存在则抛出IO异常,将其保留为null。我希望尽可能将openDB方法保留为void,并相应地编写测试代码。感谢。

public void openDB(){
        System.out.println("Name of your Database?\n");
        this.rStream = new RandomAccess(kb.nextLine(), "r", true);
    }

(目前的测试.app.getrStream只返回有问题的rStream)

@Test
public void testOpenDB() 
{
    mainApp app = new mainApp();
    app.openDB();
    assertNull(app.getrStream());
}

2 个答案:

答案 0 :(得分:2)

如果要在openDB方法失败时断言结果,只需修改测试以使用@Test注释的预期属性,如下所示:

@Test(expected = IOException.class)
public void testOpenDB() throws IOException {
    app.openDB();
}

无需窥探应用程序的内部状态以检查流的空值。

答案 1 :(得分:1)

您可以通过

注释您的测试来声明IOException
@Test(expected=IOException.class)

假设你使用JUnit 4。