在switch语句中测试(junit)默认情况?

时间:2015-01-25 18:43:31

标签: java testing junit switch-statement default

我需要知道如何使用junit在switch语句中测试默认情况。我无法更改代码本身,我尝试100%覆盖,但我不知道如何测试我的默认值。帮助

public Hello helloSwitch() {
        Hello hi = Hello.A;
        switch (this) {
        case A:
            hi = Hello.B;
            break;
        case B:
            hi = Hello.C;
            break;
        case C:
            hi = Hello.A;
            break;
        default:
            hi = Hello.A;
            break;
        }

我不得不修改一下代码,对不起它看起来很傻。我只需要知道如何编写一个junit来测试默认值,我已经测试了其他所有内容。

我无法更改此代码。

修改:已更改

编辑:此代码并不重要我需要知道如何编写默认的单元测试

编辑:我无法改变,代码本身,我只是在编写测​​试。我需要100%的报道。

2 个答案:

答案 0 :(得分:1)

让我假设'hallo'是给定方法之外的某个变量集。让我进一步假设Enum类型当前仅允许switch语句中存在的值。 在这种情况下,您可以使用“null”来触发默认情况。在这种情况下,默认语句是无法访问的,根本不应该存在。虽然可能还有一些方法可以“测试”这个 - 意味着执行运行测试的代码 - 这不会增加任何好处。 如果你有更多的枚举常量,那么选择默认情况所涵盖的任何常量。

正如一些人已经提到的那样:

  • 死代码不能也不应该被删除。
  • 100%的测试覆盖率听起来不错,但通常不是一个现实或明智的目标
  • 在我看来,测试甚至不应该知道方法中的代码,而是将方法测试为黑盒子。

答案 1 :(得分:-2)

访问此链接可以帮助您: [JUnit是一个用于测试Java单元的标准化框架(即Java类)。 JUnit可以自动完成测试中的部分工作。

想象一下,您创建了一个包含三个值的枚举类型:GREEN,YELLOW和RED。清单1包含代码: http://www.dummies.com/programming/java/using-junit] 1