Пакет testing - стандартный фреймворк для тестов. Файлы тестов заканчиваются на _test.go, функции тестов имеют сигнатуру func TestXxx(t *testing.T). Запуск: go test ./.... Тест проваливается при вызове t.Error, t.Fatal или при панике.
func TestAdd(t *testing.T) {
if got := Add(2, 3); got != 5 {
t.Errorf("Add(2,3) = %d; want 5", got)
}
}