Java 如何使用JUNIT测试枚举

Java 如何使用JUNIT测试枚举,java,junit,enums,Java,Junit,Enums,如何使用JUNIT创建测试用例来测试枚举类型。下面我添加了带有枚举类型的代码 public class TrafficProfileExtension { public static enum CosProfileType { BENIGN ("BENIGN"), CUSTOMER ("CUSTOMER"), FRAME ("FRAME"), PPCO ("PPCO"), STANDARD ("STANDARD"), W_RED ("W-RED

如何使用JUNIT创建测试用例来测试枚举类型。下面我添加了带有枚举类型的代码

public class TrafficProfileExtension {
public static enum CosProfileType {
    BENIGN ("BENIGN"), 
    CUSTOMER ("CUSTOMER"), 
    FRAME ("FRAME"),
    PPCO ("PPCO"),
    STANDARD ("STANDARD"),
    W_RED ("W-RED"),
    LEGACY("LEGACY"),
    OPTIONB ("OPTIONB");

 private final String cosProfileType;

 private CosProfileType(String s) {
     cosProfileType = s;
    }

    public boolean equalsName(String otherName){
        return (otherName == null)? false:cosProfileType.equals(otherName);
    }

    public String toString(){
       return cosProfileType;
    }
  }
}
我为我的enum
CosProfileType
创建了一个测试用例,但在CosProfileType上出现了一个错误。如何使这个测试用例工作

@Test
   public void testAdd() {
    TrafficProfileExtension ext = new TrafficProfileExtension();
    assertEquals("FRAME", ext.CosProfileType.FRAME);

}

您正在将和
String
与永远不相等的
Enum
进行比较

尝试:


由于
CosProfileType
被声明为
public static
,因此它实际上是一个顶级类(enum),因此您可以这样做

assertEquals("FRAME", CosProfileType.FRAME.name());
仅当字段和值都相同时,它才起作用,但不适用于以下情况:

FRAME ("frame_value")
最好去核实一下

assertEquals("FRAME", CosProfileType.FRAME.getFieldName());

您试图测试什么功能?您正在断言
字符串
等于
枚举
实例。什么是
ext
?我在CosProfileType上遇到一个错误:|尝试
assertEquals(“FRAME”,CosProfileType.FRAME.toString())值得注意的是,
enum
始终是静态嵌套类-它不能是内部类。在这种情况下,
静态
修饰符是多余的。。。
FRAME ("frame_value")
assertEquals("FRAME", CosProfileType.FRAME.getFieldName());