单元测试将序列化对象写入文件的方法

时间:2011-07-12 17:48:38

标签: java unit-testing serialization junit

我有一个写入序列化对象的静态方法。如何编写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();
        }

        }   
    }

2 个答案:

答案 0 :(得分:2)

从没有文件开始。

使用test Data参数调用该方法。然后从结果文件中读取它(根据需要从列表中提取数据)并与原始文件进行比较。

重复新对象以查看是否成功添加了新数据。

答案 1 :(得分:1)

更改您的函数以接受InputStream。在生产中,传递一个FileInputStream,在测试中,传递一个不同的InputStream,然后你可以检查它以确保它包含正确的值。