スレッドを生成するクラスと、結果を検証するテストがあります。Emma はスレッドのコード カバレッジを報告していませんが、デバッガーをステップ実行して、スレッドがテストされていることを確認できます。なぜこれが起こっているのかを見て、それを修正する方法を教えてもらえますか?
スレッドを生成するメソッド
private static String deviceName = DEFAULT_DEVICE_NAME;
protected void initializeDeviceName() {
if (deviceName.equals(DEFAULT_DEVICE_NAME)) {
DeviceContext.execute(new Runnable() {
@Override
public void run() {
deviceName = DeviceManager.getDeviceName();
}
});
}
}
テスト
public void testGetDeviceName() {
DeviceManager.setDeviceName(DEVICE_NAME);
// constructor calls initializeDeviceName()
iconListener = new HealthIconListener(view);
sleep(SHORT_SLEEP_TIME);
assertEquals(DEVICE_NAME, HealthIconListener.getDeviceName());
}
DeviceContext の関連メソッド
private static ExecutorService getExecutor() {
if (executor == null) {
executor = Executors.newCachedThreadPool();
}
return executor;
}
public static void execute(Runnable task) {
getExecutor().execute(task);
}