2008-09-11 11 views
3

Я пишу блок-тест, чтобы проверить, что закрытый метод закрывает поток.Почему вызов метода показан как не охваченный, когда код внутри метода покрыт emma?

Испытательное устройство вызывает methodB и переменная-то нулевое

Тест блок не издеваться класс на тесте

Частный метод в общедоступный метод, который я звоню.

Использование Эмму в затмении (через EclEmma плагин) вызов метода отображается как не покрывается, даже если код внутри метода

например

public methodA(){ 

    if (something==null) { 
     methodB(); //Not displayed as covered 
    } 
} 

private methodB(){ 
    lineCoveredByTest; //displayed as covered 
} 

Почему бы вызов метода не будет подчеркнуто как покрыто?

+0

Действительно ли метод B возвращается? – 2008-09-11 13:04:56

ответ

0

Я предполагаю, что, когда вы говорите «единичные тестовые вызовы methodB()», вы имеете в виду не напрямую, а через methodA().

Итак, возможно ли, что methodB() вызывается в другом месте, с помощью другого модульного теста или methodC()?

2

Я обнаружил, что плагин eclipse для EMMA довольно плохой, и у вас были похожие впечатления по тому, что вы описываете. Лучше просто использовать EMMA самостоятельно (через ANT, если требуется). Убедитесь, что вы всегда восстанавливаете файлы метаданных, созданные EMMA, чтобы избежать слияния путаницы (что, как я подозреваю, является проблемой с плагином eclipse).