首页 > 解决方案 > 如何对包含 try/catch 块的方法进行单元测试

问题描述

我必须测试负责接受输入的方法。它包含 try/catch 块。我应该进行单元测试吗?如果是这样,该怎么做?

static String takeStringInput(Scanner input, String label) {
    while (true) {
        try {
            System.out.println(label + ": ");
            return input.next();
        } catch (InputMismatchException e) {
            System.out.println("Try again, bad input");
            input.next();
        }
    }
}

模拟扫描仪是不可能的,因为不可能模拟最终课程。

标签: javajunittry-catch

解决方案


模拟扫描器(可能使用 Mockito)以返回有效值。这将测试“幸福之路”。然后,修改模拟,使其返回一个异常,然后返回一个有效值。


推荐阅读