gpt4 book ai didi

java - JUnit 测试用例失败

转载 作者:行者123 更新时间:2023-12-01 10:57:30 24 4
gpt4 key购买 nike

我有一个简单的测试用例:

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() 处的测试失败。有两件事我不明白:

  1. 我不明白,它在 testGetFiles() 处失败,为什么我仍然可以看到打印 testPersistFiles() ,听起来即使它失败了,它不会停止运行,而是继续运行下一个测试testPersistFiles()? JUnit 测试用例的幕后发生了什么?

  2. 我不明白的另一件事是为什么 testGetFiles() 失败?我可以看到日志表明 persistFiles() 已保留文件。为什么之后就变成null了?

最佳答案

I don’t understand, it is failed at testGetFiles() why I can still see the print testPersistFiles() which sounds like even it is failed, i

这就是单元测试的工作原理。每个测试都应该是隔离的,并且仅使用其数据集进行工作。单元测试框架运行每个测试,以便您可以看到系统的哪些部分工作,哪些部分不工作,它们不会在第一次失败时停止。

关于java - JUnit 测试用例失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33545852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com