Есть ли способ издеваться над функцией в clojure? - PullRequest
1 голос
/ 09 февраля 2020

Есть ли способ издеваться над функцией в clojure. Например, у меня есть эта функция: (defn a [x] (utils/count x)) Мне нужно написать тест, но я не знаю, как смоделировать utils / count (например). Что делать, если у меня есть несколько функций внутри одной функции, и мне нужно проверить это? (defn a [x] (utils/count x) (utils/count2 x) (test/other x))

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

См. Также https://ask.clojure.org/index.php/9077/how-do-you-mock-in-clojure, который предлагает организовать ваш код таким образом, чтобы вам, по возможности, не требовались макеты.

2 голосов
/ 09 февраля 2020

Вы можете использовать with-redefs например

(deftest t
  (with-redefs [utils/count (fn [x] 2)
                utils/count2 (fn [x] 3)
                test/other (fn [x y] :result)]
    (let [result (a 2)])))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...