【问题标题】:Writing Junits for enums in a switch case在 switch case 中为枚举编写 Junit
【发布时间】:2013-11-25 13:56:55
【问题描述】:

此代码在执行时返回 ArrayoutOfBoundsException:0 源代码:

public static String foo(final EnumClass enumObject){
    switch(enumObject){
        case CASE1 : return "case1";
        case CASE2 : return "case2";
        default : return "invalid";
    }
}

枚举定义:

EnumClass{
    CASE1,CASE2;
}

测试代码:

public void testFoo(){
    assertEquals("case1",foo(EnumClass.CASE1));
}

【问题讨论】:

  • 请发布您的异常的堆栈跟踪!
  • 你没有得到那个异常,这个代码。修改上面的代码,直到你真正得到你描述的异常。很可能您会在该练习之后知道为什么会出现该异常。

标签: java junit enums switch-statement


【解决方案1】:

以下通过没有错误,因此您的代码中的其他内容导致错误:

public class TestClass {

public static String foo(final EnumClass enumObject) {
    switch (enumObject) {
    case CASE1:
        return "case1";
    case CASE2:
        return "case2";
    default:
        return "invalid";
    }
}

enum EnumClass {
    CASE1, CASE2;
}

@Test
public void testFoo() {
    Assert.assertEquals("case1", foo(EnumClass.CASE1));
}
}

【讨论】:

猜你喜欢
  • 2022-11-03
  • 2014-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 2012-04-30
相关资源
最近更新 更多