Тесты должны по максимуму взаимодействовать с системой через публичное АПИ. Спускайтесь на более низкие уровни (отдельные классы и методы) только в случае крайней необходимости. Используйте моки только для симуляции поведения управляемых зависимостей, которое сложно триггернуть (как правило ошибки) и для верификации наблюдаемого поведения взаимодействия с неуправляемыми зависимостями.
см. также Тестирование Trainer Advisor: теория