我正在尝试制作一个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());
}
答案 0 :(得分:2)
如果要在openDB
方法失败时断言结果,只需修改测试以使用@Test
注释的预期属性,如下所示:
@Test(expected = IOException.class)
public void testOpenDB() throws IOException {
app.openDB();
}
无需窥探应用程序的内部状态以检查流的空值。
答案 1 :(得分:1)
您可以通过
注释您的测试来声明IOException
@Test(expected=IOException.class)
假设你使用JUnit 4。