Вы проверяете не ту вещь.Частные методы являются частными.Они не имеют отношения к потреблению кода, а модульные тесты потребляют код, как и любой другой.
В своих тестах вы тестируете и проверяете функциональность компонента, обращенную наружу.Его внутренние детали реализации не имеют отношения к тестам.Все тесты заботятся о том, дает ли вызванная операция ожидаемые результаты.
Таким образом, вы должны задать себе вопрос: каковы ожидаемые результаты при вызове этой операции?:
calculateItems()
Это ничего не возвращает, так что делает это делает?В каком состоянии он каким-то образом изменяется? Это - это то, что должен соблюдать ваш тест, а не детали реализации, а наблюдаемый результат.(И если операция не имеет наблюдаемого результата, то нет разницы между "пройден" или "не пройден", поэтому проверять нечего.)
Мы не можем видеть детали вашегокод, но возможно, что наблюдаемый результат полностью связан с другим компонентом.Если это так, то другой компонент является зависимостью для этой операции, и цель модульного теста состоит в том, чтобы смоделировать эту зависимость, чтобы операция могла быть протестирована независимо от зависимости.Затем может потребоваться изменить компонент, чтобы обеспечить зависимость, а не внутреннее управление.(Это называется принцип обращения зависимостей .)
Также обратите внимание ...
но я не могу изменить исходный код
Это отдельная проблема полностью.Если вы действительно не можете изменить исходный код, тогда ценность этих тестов резко снижается и, возможно, полностью исключается.Если тест не пройден, что вы можете с этим поделать?Ничего такого.Потому что вы не можете изменить код.Итак, что вы тестируете?
Имейте в виду, что не только возможно, но, к сожалению, очень распространено для программистов, чтобы написать код, который не может быть осмысленно проверенным модулем.Если этот код был предоставлен вам кем-то другим, и вам запрещено изменять его по какой-либо нетехнической причине, то это будет обязанность другого лица исправить код.«Исправление» может включать в себя «обеспечение возможности значимого модульного тестирования».(Или, если честно, они должны быть юнит-тестами. Не вы.)