Я думаю, что вы спрашиваете, почему вы получаете более низкий охват, когда вы отключаете свои утверждения?
Это происходит потому, что компилятор вставляет новые ветви для утверждений. Рассмотрим этот пример:
assert x > 0;
Компилятор вставит код, который примерно соответствует
if (assertions are enabled) {
if ( ! x > 0 )
throw new AssertionViolatedException()
}
}
Это добавляет ветки к вашему коду, и ни одна из них не выполняется, когда вы включаете утверждения. Это снизит коэффициент покрытия, но это не имеет большого значения, поскольку это относится к сгенерированному компилятором коду.