Я пытаюсь проверить метод, который копирует исходный файл в файл dest с помощью JUnit's TemporaryFolder
. Я получаю Java IOException
, когда я пытаюсь запустить этот тест. Имеет ли значение, где я делаю объявление для папки? (У моего тестового класса есть несколько разных тестов). И если да, то каков правильный способ сделать это? Я спрашиваю, потому что в настоящее время у меня есть несколько модульных тестов над этим кодом, затем я пытаюсь настроить тестирование для копирования файлов. Возможно, блок должен быть в своем классе? @Rule
- - @Test
Вот фрагмент кода, где я закодированы тест:JUnit: Когда я объявляю объект TemporaryFolder?
...other tests...then:
@Rule
public static TemporaryFolder tmp = new TemporaryFolder();
private File f1, f2;
@Before
public void createTestData() throws IOException {
f1 = tmp.newFile("src.txt");
f2 = tmp.newFile("dest.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(f1));
out.write("This should generate some \n" +
"test data that will be used in \n" +
"the following method.");
out.close();
}
@Test
public void copyFileTest() {
out.println("file 1 length: " + f1.length());
try {
copyFile(f1, f2);
} catch (IOException e) {
e.getMessage();
e.printStackTrace();
}
if (f1.length() != f2.length())
fail();
else if (!f1.equals(f2))
fail();
assertSame(f1, f2);
}
Когда я запускаю этот тестовый класс, все 11 моих испытаний в настоящее время не в состоянии (которые ранее прошли) и я получаю java.io.IOException: No such file or directory
.