JUnit测试void方法(输出-输入依赖性)

问题描述 投票:-1回答:1

我试图为一种特定方法编写JUnit测试时遇到了一个问题。我搜索了可能的解决方案,但由于输出不依赖于输入,因此它们中的许多都无济于事。任何帮助将不胜感激。

我的类方法看起来像这样:

public static void method1() {
    Scanner input = new Scanner(System.in);
    String state = input.nextLine();
    if( /* condition dependent on state value */ ) {
        System.out.println("...");
    }
    else {
        System.out.println("..."+state+"...");
}

如何为它编写一个JUnit测试,Robot类可以以某种方式解决问题吗?

java testing methods void junit5
1个回答
0
投票

如果将逻辑提取到类似的单独函数中,则>]

public static void method1() {
    Scanner input = new Scanner(System.in);
    String state = input.nextLine();
    System.out.println(processingLogic(state));
}

static String processingLogic(String state) {
    if ( /* condition dependent on state value */) {
        return "some value";
    } else {
        return "some other value";
    }
}

您可以为该功能编写单元测试,以确保其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.