Ложный код, уменьшающий покрытие кода
Я работаю с Golang и использую mockhiato для генерации макетов для всех интерфейсов. Этот инструмент генерирует ложную реализацию в файле mocks.go в том же пакете. Я не могу переименовать mocks.go в mocks_test.go, так как этот mock-файл используется другими пакетами.
Проблема в том, что эти фиктивные файлы подсчитываются инструментом покрытия Go и, таким образом, снижается процент покрытия моего кода для пакета.
Я ищу хороший обходной путь, чтобы мое покрытие кода не показывало плохие цифры.
2 ответа
В этом случае лучше всего было бы перенести макеты в их собственный выделенный пакет, в котором не было бы тестового покрытия. Это устранит их влияние на код, для которого вы действительно хотите получить данные покрытия.
Вот как мы это решили.
- Поместите интерфейс в потребительские папки. Если сервис вводится в обработчик, то у обработчика будет определение интерфейса сервиса. Это потому, что философия GoLang предполагает, что интерфейс должен использовать функциональность, а не раскрывать ее.
Используется издевательство, чтобы генерировать издевательства.
Создайте макеты в отдельной папке _mock.