gpt4 book ai didi

java - 为什么这个文件无法删除?

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

我编写了单元测试(JUnit 4),它执行一些逻辑并将结果写入文件。在 @Before 注释方法中,它创建文件,在 @After 中,应删除该文件。但事实并非如此,我也不明白为什么。

我正在使用 Google Guava 10.01 文件 API。这是我的单元测试代码:

public class CashierTest extends ContextedTest {

private File cashierFile;

@Before
public void createFile() throws Exception {
cashierFile = new File("D://workspace-sts/spring-miso/cashier.txt");
cashierFile.createNewFile();
}

@After
public void release() {
if (cashierFile.exists()) {
if (!cashierFile.delete()) {
System.out.println("Couldn't delete cashier file");
}
}
cashierFile = null;
}

@Test
public void testCashier() throws Exception {
// file shouldn't contain any text
assertFalse(Files.toString(cashierFile, Charset.defaultCharset()).length() > 0);

Cashier cashier = (Cashier) context.getBean("cashier");
ShoppingCart cart = (ShoppingCart) context.getBean("shoppingCartPrototype");
cashier.checkout(cart);

assertTrue(cashierFile.exists());
// file should contain text now
assertTrue(Files.toString(cashierFile, Charset.defaultCharset()).length() > 0);
}

@Override
protected void setPath() {
path = "sk/xorty/advancedioc/beans.xml";
}
}

注意:ContextedTest 父类(super class)是我的测试,它包含 Spring 容器,它与 atm 无关。

最佳答案

简单地实例化一个文件并不意味着将创建一个实际的文件。为此,在该实例上调用 createNewFile()createTempFile()

在您的测试方法中,您似乎没有将该文件引用传递给可能创建该文件或在其中写入任何内容的任何人...我是否遗漏了某些内容,或者您​​发布的代码是否缺少一些关键行?

关于java - 为什么这个文件无法删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643878/

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