私はこれに完全に混乱しています。単体テストに相当する完全なパッケージを実行しています。以下は、多くの JUnit テストで使用される関連する共有コードです。
private static Map<String, JAXBContext> jaxbContexts =
new HashMap<String, JAXBContext>();
private synchronized JAXBContext getJAXBContext(Class clazz) throws JAXBException {
JAXBContext context = null;
if (jaxbContexts.containsKey(clazz.getName())) {
context = jaxbContexts.get(clazz.getName());
} else {
context = JAXBContext.newInstance(clazz);
System.out.println("Created new context for '" + clazz.getName() + "'");
jaxbContexts.put(clazz.getName(), context);
}
return context;
}
JUnit 実行のコンソール出力には、次の 2 つの連続するエントリが含まれます。
Created new context for 'com.somecompany.xmlschema.providepensionpaymentinfo.Interface'
Created new context for 'com.somecompany.xmlschema.providepensionpaymentinfo.Interface'
私は何が欠けていますか?jaxbContexts.containsKey()
JUnit 実行中の他の 46 回とは異なり、このインスタンスで文字列ベースのキーが機能しなかったのはなぜですか? テストを並行して実行していませんが、違いが生じる場合はアスペクトを使用します。