Функция ExampleXxx
Функция ExampleXxx является специальной функцией в пакете testing,
которая позволяет создавать исполняемые примеры для документации.
Она не вызывается напрямую, а используется как часть системы тестирования Go.
Примеры помогают разработчикам понять, как использовать функции пакета,
и одновременно служат проверкой работоспособности кода.
Синтаксис
func ExampleXxx() {
// код примера
}
Где Xxx - это имя функции, которую демонстрирует пример.
Например, для демонстрации функции PrintHello нужно создать
функцию ExamplePrintHello.
Пример
Давайте создадим пример для функции сложения двух чисел:
package main
import "fmt"
func Add(a, b int) int {
return a + b
}
func ExampleAdd() {
res := Add(5, 3)
fmt.Println(res)
// Output: 8
}
Результат выполнения кода:
"8"
Обратите внимание на комментарий // Output: 8 - он указывает
ожидаемый результат и используется для автоматической проверки примера.
Пример
Пример для функции, которая объединяет слайс строк:
package main
import "fmt"
func JoinStrings(s []string, sep string) string {
res := ""
for i, str := range s {
if i > 0 {
res += sep
}
res += str
}
return res
}
func ExampleJoinStrings() {
res := JoinStrings([]string{"a", "b", "c", "d", "e"}, "-")
fmt.Println(res)
// Output: a-b-c-d-e
}
Результат выполнения кода:
"a-b-c-d-e"
В этом примере функция JoinStrings объединяет элементы слайса
с указанным разделителем, а затем выводит результат.
Пример
Пример с несколькими выводами для демонстрации работы функции:
package main
import "fmt"
func Calculate(num int) (int, int) {
return num * 2, num * 3
}
func ExampleCalculate() {
double, triple := Calculate(4)
fmt.Println("Double:", double)
fmt.Println("Triple:", triple)
// Output:
// Double: 8
// Triple: 12
}
Результат выполнения кода:
"Double: 8"
"Triple: 12"
Если пример выводит несколько строк, все они должны быть указаны
в блоке // Output в правильном порядке.
Смотрите также
-
функцию
testing.T.Run,
которая запускает подтесты внутри основного теста -
функцию
testing.B.Run,
которая запускает подбенчмарки внутри основного бенчмарка -
функцию
testing.T.Log,
которая выводит логи во время выполнения теста -
функцию
testmain,
которая используется для настройки тестового окружения