web-dev-qa-db-ja.com

JUNITを使用してENUMをテストする方法

JUNITを使用してENUMSタイプをテストするテストケースを作成するにはどうすればよいですか。以下に列挙型のコードを追加しました。

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;
    }
  }
}

列挙型CosProfileTypeのテストケースを作成しましたが、CosProfileTypeでエラーが発生します。このテストケースを機能させるにはどうすればよいですか?

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

}
7
yesco1

CosProfileTypeが宣言されているのでpublic staticそれは事実上トップレベルのクラス(列挙型)なので、

assertEquals("FRAME", CosProfileType.FRAME.name());
3
Reimeus

StringEnumと比較しています。これは決して等しくなることはありません。

試してください:

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

}
0
jbarrueta