我试图写一些字符串到临时文件夹创建的文件。我需要提供3字符串:第一个月
1)我做了这个,但是它没有增加任何东西。testedContent
的长度仍然是0。我做错了什么?:
private ContentFileRetriever contentFileRetriever = new ContentFileRetrieverService();
@Rule
public TemporaryFolder tempFolder = new TemporaryFolder();
@Before
public void setup() {
}
@Test
public void getContentFile() throws IOException {
File textFile = tempFolder.newFile("testText.txt");
String pathFile = textFile.getPath();
FileWriter fileWriter = new FileWriter(textFile.getName());
fileWriter.write("Line1 a");
fileWriter.write("Line2 b c");
fileWriter.write("Line3 3");
String[] testedContent = contentFileRetriever.getContentFile(pathFile);
String[] expected = {"Line1 a", "Line2 b c", "Line 3"};
assertArrayEquals(expected, testedContent);
}
2)我应该在设置中使用@Before
方法还是在测试中进行?
3)我读到这个文件夹将被自动删除,所以我不需要在textFile
上执行.deleteOnExit()
?
2条答案
按热度按时间1rhkuytd1#
我看到两个问题:
1.使用文件名而不是文件本身打开FileWriter对象
1.不关闭FileWriter
这对我很有效:
fykwrbwg2#
必须在创建FileWriter的行中将textFile.getName() 更改为textFile.getPath(),如下所示: