Почему вызов метода отображается как не покрытый, когда код внутри метода покрыт emma? - PullRequest
3 голосов
/ 11 сентября 2008

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

В модульном тесте вызывается methodB, а переменная что-то имеет значение null

Юнит тест не проверяет класс на тесте

Закрытый метод находится внутри открытого метода, который я вызываю.

При использовании emma в eclipse (через плагин eclemma) вызов метода отображается как не покрываемый, хотя код в методе

1011 * например *

public methodA(){

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

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

Почему вызов метода не будет выделен как охватываемый?

Ответы [ 2 ]

2 голосов
/ 16 сентября 2008

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

0 голосов
/ 11 сентября 2008

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

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

...