0

xml 構成ファイルでは、次のように Unicode エスケープ seq として構成された delimiter プロパティがあります。

<adapter name="Adapter2">
  <property name="adapter.delimiter" value="\u0009"/>
</adapter>

Adapter クラスのプロパティを取得するメソッドもあります。

String getProperty(String propertyName)

getProperty("adapter.delimiter") の場合、既にエスケープされた文字列 "\t" を返します

私が必要とするのは、プロパティ \u0009 を char に変換して、\t char を他のメソッドに提供できるようにすることです。

  • 単体テストでメソッドが実際にタブ文字を返すことを確認するには?

これは機能しません (コードまたは単体テストが間違っているかどうかはわかりません):

public char getDelimiter() throws VTBaseException {
    String delimiterProperty = getProperty("adapter.delimiter");

    if (delimiterProperty == null || "".equals(delimiterProperty)) {
        //default
        return DEFAULT_DELIMITER;
    } else if (delimiterProperty.length() == 1) {
        return delimiterProperty.charAt(0);
    } else {
        throw new VTBaseException();
    }
}

単体テスト:

@Test
public void testReturnDelimiterProperty()
    throws Exception
{
    VTAdapter adapter = manager.getAdapter("Adapter2");
    assertEquals(',', adapter.getDelimiter());//passes if property not set
    adapter = world.getAdapterList().getAdapter("Adapter1");
    assertEquals("\t", adapter.getDelimiter());//fails with exception bellow


}

junit.framework.AssertionFailedError: expected:<    > but was:< >
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:283)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:71)
at 
4

1 に答える 1