我有一個簡單的測試案例: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。 –