Ложный код, уменьшающий покрытие кода

Я работаю с Golang и использую mockhiato для генерации макетов для всех интерфейсов. Этот инструмент генерирует ложную реализацию в файле mocks.go в том же пакете. Я не могу переименовать mocks.go в mocks_test.go, так как этот mock-файл используется другими пакетами.

Проблема в том, что эти фиктивные файлы подсчитываются инструментом покрытия Go и, таким образом, снижается процент покрытия моего кода для пакета.

Я ищу хороший обходной путь, чтобы мое покрытие кода не показывало плохие цифры.

2 ответа

В этом случае лучше всего было бы перенести макеты в их собственный выделенный пакет, в котором не было бы тестового покрытия. Это устранит их влияние на код, для которого вы действительно хотите получить данные покрытия.

Вот как мы это решили.

  1. Поместите интерфейс в потребительские папки. Если сервис вводится в обработчик, то у обработчика будет определение интерфейса сервиса. Это потому, что философия GoLang предполагает, что интерфейс должен использовать функциональность, а не раскрывать ее.
  2. Используется издевательство, чтобы генерировать издевательства.

  3. Создайте макеты в отдельной папке _mock.

Другие вопросы по тегам