Я хотел бы использовать спецификации clojure для проверки ввода моих функций (по крайней мере, во время разработки). До сих пор я сделал следующее: я определил спецификации и в начале функций я поставил утверждения, как в этом примере:
(defn foo [bar]
(s/assert ::bar bar)
(do-something-with bar))
где s
— псевдоним clojure.spec.alpha
. По умолчанию эти утверждения отключены (при выполнении модульных тестов с помощью midje). Я могу включить их, поместив (s/check-asserts true)
в один из моих файлов. Однако я не уверен, каковы будут масштабы этой настройки. Мне кажется неправильным помещать его просто в один из исходных файлов, хотя мне кажется, что пока он работает.
Каков был бы рекомендуемый способ включить эти утверждения во время тестирования, но отключить их при развертывании приложения?