我有一个简单的测试案例:JUnit测试用例失败
public class FileManagerTest {
String dirPath = “/myDir/”
@Before
public void setUp() {
mFileManager = MyFileManager.getInstance();
}
@Test
private void testPersistFiles() {
System.out.println(“testPersistFiles()…”);
//it deletes old files & persists new files to /myDir/ directory
boolean successful =mFileManager.persistFiles();
Assert.assertTrue(successful);
}
@Test
public void testGetFiles() {
System.out.println(“testGetFiles()…”);
mFileManager.persistFiles();
//I double checked, the persistFiles() works, the files are persisted.
List<File> files = mFileManager.getFilesAtPath(dirPath);
Assert.assertNotNull(files); //Failure here!!!!
}
@Test
public void testGetFilesMap() {
System.out.println(“testGetFilesMap()…”);
mFileManager.persistFiles();
Map<String, File> filesMap = mFileManager.getFilesMapAtPath(dirPath);
Assert.assertNotNull(files);
}
}
在FileManager
的persistFiles()
功能删除所有文件在/ MYDIR /然后再坚持的文件。
正如您在上面看到的,我在每个测试函数中都有一个System.out.println(…)
。当我运行它,我可以看到以下顺序全部打印:
testGetFilesMap()…
testGetFiles()…
testPersistFiles()…
然而,测试失败的testGetFiles()
。有两件事情我不明白:
我不明白,这是失败的
testGetFiles()
为什么我仍然可以看到这听起来像它甚至失败的打印testPersistFiles()
,它不会停止运行,但继续运行下一个测试testPersistFiles()
? JUnit测试用例中幕后发生了什么?我不明白的另一件事是为什么
testGetFiles()
失败?我可以看到persistFiles()
已保存文件的日志。为什么它在那之后变为空?
我们需要看一些代码来回答#2。 –