Я написал модульный тест (JUnit 4), который выполняет некоторую логику и записывает результат в файл. В аннотированном методе @Before
он создает файл, а в @After
файл должен быть удален. Это не так, и я не могу понять, почему.
Я использую Google Guava 10.01 Files 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
суперкласс - это мой тест, в котором хранится контейнер Spring, он не релевантен.