gpt4 book ai didi

java - 有没有办法暂时接受junit测试用例成功?

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

我有两个进程 - FileWriter 和 FileReader。FileWriter 有一个 write() 方法,如果文件丢失,该方法会创建该文件并写入该文件。 FileReader 有一个 read() 方法,该方法从文件中读取并在文件不可用时抛出 CustomException。

在正常应用程序运行期间,首先执行 FileWriter.write() 方法,然后执行 FileReader.read() 方法。由于文件始终存在,因此 read() 方法永远不会抛出我的 CustomException,除非 FileWriter 出现问题。

我正在为这两个类编写 junit 测试用例。当独立测试这两个类时,我发现当文件不存在时会抛出自定义异常。出于一个非常复杂的原因,我希望测试用例被标记为成功并执行下一个测试。为了实现这一目标,我做了以下工作:

@Test
public void testRead() throws CustomException {
boolean assumeTestcasePassed = false;
FileReader fileReader = new FileReader();
String fileContent = null;
try {
fileContent = fileReader.read();
} catch (CustomException e) {
assumeTestcasePassed = true;
}
if(assumeTestcasePassed){
assertTrue(true);
} else {
assertTrue("File is empty", fileContent != null);
}

}

有更好的方法来实现我在这里所做的事情吗?

最佳答案

如果我理解正确,您期望抛出异常,只需执行以下操作:

@Test
public void testRead() {
try {
assertTrue(new FileReader().read() != null);
} catch (CustomException e) {
// Test passes
}
}

您还可以像这样的答案进行注释:How do you assert that a certain exception is thrown in JUnit 4 tests?

关于java - 有没有办法暂时接受junit测试用例成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47893896/

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