обычно сразу задают вопрос
Спасибо, я знаю. Но это тот редкий случай когда подобный вопрос имеет смысл, потому что если человек не пробовал такие тесты писать - нет смысла и спрашивать про инструменты/сложности которые при этом возникли.
типа convey?
нет. convey - это bdd, но на нём можно и обычные unit/table тесты.
Это скорее как quickcheck из scala или hypothesis в python. Идея в том, что ты описываешь какой-то закон для своего кода, а дальше фреймворк пытается найти значения при которых этот закон не выполняется. Т.е. это статистическая штука, но т.к. тестов она генерирует ОЧЕНЬ много, то результат сильно лучше чем при ручном написании тестов.
жаль что я не юзал ни скалу ни гипотезис
Сейчас потихоньку набирает популярность fuzzing Это в бок, но похожая штука
Самое простое правило(допустим, тестируем Add(a,b int) : Add(a, b) == Add(b, a)
https://github.com/dvyukov/go-fuzz
Да, это тоже хорошее направление. А что из популярного есть? Оба подхода похожи и вообще это можно было бы объединить в 1 фреймворк
Обсуждают сегодня