Как писать unit-тесты для крупного приложения на go?
По определению, юнит-тесты тестируют свой кусочек и не смотрят на приложение вцелом и даже на модуль. Они должны мокать все внешние запросы и подсовывать заранее определенные ответы
А функциональный тест вполне можно и в корень проекта положить
Есть несколько подходов.
Один из них – тестировать только публичные методы пакетов, а файлы тестов держать в корне проекта.
Второй, и, мне кажется, более правильный – снижать связанность пакетов. Методы делать проще и более абстрактными, чтобы их было легче тестировать.