java - 我如何测试保存方法?

标签 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();
    }
}

最佳答案

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

在运行时,这可能是一个 FileOutputStream。但为了测试,您可以传递一个不同的工厂来创建,例如 ByteArrayOutputStream。然后你的代码在不知情的情况下写入内存。

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

关于java - 我如何测试保存方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56520938/

相关文章:

java - 如何排除@AfterClass方法所花费的时间?

unit-testing - GroovyTestCase 不支持 @BeforeClass 和 @AfterClass

java - 如何在 myBatis 的查询中使用 IN()

Java HashMap 哈希函数

java - Android中基于cookie的登录系统

java - 如何使 JUnit 接受任何 Lambda 表达式

android - @Rule > 必须是 Kotlin Junit 测试中的公共(public) ValidationError

java - 如何使用 EWS 从 session 室获取完整的约会详细信息

java - 如何对更改 Java 中数据的方法进行单元测试

java - 在Junit4中,如何基于@Test注释更改@Before行为