Что такое функция
Что проверяют
Вопрос базовый и задаётся автоматизатору, чтобы понять, пишет ли он код осознанно или собирает тесты копированием. За формулировкой сразу видно, различает ли кандидат параметр и аргумент, возвращаемое значение и побочный эффект. Из этого потом складываются хелперы и фикстуры, поэтому вопрос не такой пустой, каким кажется.
Как отвечать
Функция это именованный блок кода со своей сигнатурой: имя, список параметров, тип возвращаемого значения. Её можно вызвать из любого места, она изолирует логику и делает её пригодной для проверки по отдельности.
func Sum(a, b int) int {
return a + b
}Дальше переводите разговор на то, что важно для тестирования. У чистой функции результат зависит только от аргументов: она не читает время, файлы и сеть, поэтому проверяется таблицей случаев без единого мока. Функция с побочным эффектом требует подготовки окружения и уборки после, и именно она делает прогон нестабильным.
Уместно назвать: передачу аргументов копией (в Go копируется всё, но копия слайса или карты указывает на те же данные), возврат ошибки вторым значением, замыкания и функцию как значение, когда хелпер принимает проверку параметром.
Где спотыкаются
Говорят «функция что-то делает» и не могут отделить её от метода. Метод это функция с получателем, и в автотестах разница ровно между вызовом свободного хелпера и вызовом на объекте страницы.
Путают параметр и аргумент. На словах мелочь, но в разговоре про параметризованные тесты сразу становится непонятно, кто и что подставляет.
Не видят побочных эффектов в собственных хелперах. Функция, которая внутри читает глобальный конфиг или ходит в базу, ломает изоляцию тестов, и падения превращаются в плавающие.