Pull to refresh

Comments 7

Зачем нужно 100%?

Имхо, достаточно покрывать тестами самые неоднозначные места или места, от которых много чего по цепочке может зависеть.
Что бы код был еще и качественным рекомендую использовать gometalinter. На 100% покрытом тестами проекте мне удалось найти пару ошибок с помощью gometalinter
Привет.

Как вариант, подключаться к настоящему серверу БД, в каждом тесте предзаполнять данными, проводить выборки, очищать. Но это сложное решение, далеко от unit-тестирования и накладывает свои требования на окружение, в том числе на CI-сервере.


Можно посмотреть на www.testcontainers.org

2) После получения 100% тестового покрытия можно смотреть в сторону мутиационного тестирования, улучшая качество тестов.
С типами проявилась еще особенность языка Go — переменная типа string не может принимать значение nil, но из БД может прийти как пустая строка, так и NULL. Для решения этой проблемы в пакете database/sql есть решение — использовать специальные struсt, которые хранят в себе значение и признак, NULL это или нет.

Можно также использовать указатель на строчку.
И не только на строку, а на любой тип, который может оказаться NULL в базе.
Sign up to leave a comment.

Articles