如何测试保存方法?

时间:2019-06-10 05:30:58

标签: java junit junit4

我有以下保存方法,但是我不知道如何验证此方法。我如何在JUnit中进行验证?

public static void save(Spiel spielen,File file ) {
    try(ObjectOutputStream out= new ObjectOutputStream(new FileOutputStream(file))) {

        out.writeObject(spielen);

        System.out.println("Speichern Erfolgreich");
        System.out.println();
    }
    catch (Exception  e) {
        System.out.println("Fehler beim Speichern");
        System.out.println();
    }
}

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案:不要传入文件对象。但是,可以为您创建一个OutputStream的工厂

在运行时,这可以是FileOutputStream。但是对于测试,您可以通过创建ByteArrayOutputStream的其他工厂。然后,您的代码将不知不觉地写入内存。

然后您可以编写另一个测试来读取这些字节。

答案 1 :(得分:1)

您可以将参考预期的输出文件存储在磁盘上,然后将测试的输出与此进行比较。进行比较的方法有很多,包括一些JUnit Addons(特别是FileAssert),或者只是将两个文件读入字节数组并断言它们相等。

存在许多其他实用程序,其中一些在此答案中列出:File comparator utilities