我有一个写入序列化对象的静态方法。如何编写JUnit测试以查看它是否有效?这是我的方法......
public static void writeToDisk(Data data){
try{
FileInputStream fis = new FileInputStream(filename); ObjectInputStream in = new ObjectInputStream(fis);
dataList = (DataList) in.readObject();
in.close();
}
catch(Exception e){
dataList = new DataList();
System.out.println("New file created!");
}
dataList.insertData(data);
try{
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject(dataList);
out.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
答案 0 :(得分:2)
从没有文件开始。
使用test Data
参数调用该方法。然后从结果文件中读取它(根据需要从列表中提取数据)并与原始文件进行比较。
重复新对象以查看是否成功添加了新数据。
答案 1 :(得分:1)
更改您的函数以接受InputStream。在生产中,传递一个FileInputStream,在测试中,传递一个不同的InputStream,然后你可以检查它以确保它包含正确的值。