Java 如何使用JUNIT测试枚举
如何使用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
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;
}
}
}
我为我的enumCosProfileType
创建了一个测试用例,但在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());