我想为我的保存和加载方法编写单元测试,但这些方法使用文件选择器,我不知道如何在单元测试中模拟其使用。
下面是我的加载和保存方法。
显然我需要添加更多细节,但我已经简明扼要地总结了我的情况。
下面是我的加载和保存方法。
显然我需要添加更多细节,但我已经简明扼要地总结了我的情况。
public static String load() throws IOException {
FileChooser fc = new FileChooser();
// Define extension filters
FileChooser.ExtensionFilter txtFilter = new FileChooser.ExtensionFilter("Text Files (*.txt)", "*.txt");
FileChooser.ExtensionFilter odtFilter = new FileChooser.ExtensionFilter("ODT Files (*.odt)", "*.odt");
fc.getExtensionFilters().addAll(txtFilter, odtFilter);
File file = fc.showOpenDialog(null);
// Chose an appropriate method to load the file contents
if (file != null) {
FileChooser.ExtensionFilter selectedFilter = fc.getSelectedExtensionFilter();
if (selectedFilter == txtFilter) {
return readTxt(file);
} else if (selectedFilter == odtFilter) {
return readOdt(file);
} else {
return null;
}
}
return null;
}
// Displays a save file dialog
// Does not return any value
public static void save(String text) throws IOException {
FileChooser fc = new FileChooser();
// Define extension filters
FileChooser.ExtensionFilter txtFilter = new FileChooser.ExtensionFilter("Text Files (*.txt)", "*.txt");
FileChooser.ExtensionFilter pdfFilter = new FileChooser.ExtensionFilter("PDF Files (*.pdf)", "*.pdf");
fc.getExtensionFilters().addAll(txtFilter, pdfFilter);
File file = fc.showSaveDialog(null);
if (file != null) {
FileChooser.ExtensionFilter selectedFilter = fc.getSelectedExtensionFilter();
if (selectedFilter == txtFilter) {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(text);
writer.close();
} else if (selectedFilter == pdfFilter) {
savePdf(text, file);
}
}
}
FileChooser
是“final”的。 - Slaw