我有以下保存方法,但是我不知道如何验证此方法。我如何在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();
}
}
答案 0 :(得分:1)
一个简单的解决方案:不要传入文件对象。但是,可以为您创建一个OutputStream的工厂。
在运行时,这可以是FileOutputStream。但是对于测试,您可以通过创建ByteArrayOutputStream的其他工厂。然后,您的代码将不知不觉地写入内存。
然后您可以编写另一个测试来读取这些字节。
答案 1 :(得分:1)
您可以将参考预期的输出文件存储在磁盘上,然后将测试的输出与此进行比较。进行比较的方法有很多,包括一些JUnit Addons(特别是FileAssert),或者只是将两个文件读入字节数组并断言它们相等。
存在许多其他实用程序,其中一些在此答案中列出:File comparator utilities