1

スレッドを生成するクラスと、結果を検証するテストがあります。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);
}
4

0 に答える 0