-1

我正在尝试创建一个 Junit 测试方法,该方法将根据 OpenDB 设置的内容检查 randomAccessFile 变量是否为空,如下所示。此方法的两个可能结果是 rStream (randomAccessFile) 将打开用户指定的文件,或者如果文件不存在则抛出 IO 异常,使其为空。如果可能,我想将 openDB 方法保留为无效并相应地对测试进行编码。谢谢。

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());
}
4

2 回答 2

2

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

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

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

于 2013-04-27T17:18:54.890 回答
1

IOException您可以通过使用注释您的测试来断言

@Test(expected=IOException.class)

假设您使用 JUnit 4。

于 2013-04-27T17:21:15.900 回答