Я новичок в Cursive и Clojure в целом, и у меня возникли некоторые трудности с получением приличного рабочего процесса TDD.
Моя проблема в том, что последующие прогоны теста зависят от состояния в REPL. Например, предположим, что у вас есть код ниже.
(def sayHello "hello")
(deftest test-repl-state
(testing "testing state in the repl"
(is (= "hello" sayHello))))
Если вы запустите это с помощью «Tools-> REPL-> Выполнить тесты в текущих ns в REPL», оно пройдет.
Если вы затем выполните рефакторинг кода, как этот
(def getGreeting "hello")
(deftest test-repl-state
(testing "testing state in the repl"
(is (= "hello" sayHello))))
Если вы запустите это с помощью «Tools-> REPL-> Выполнить тесты в текущих ns в REPL», оно все равно пройдет (потому что определение sayHello
все еще существует в repl). Тем не менее, тесты должны провалиться, потому что код в настоящее время находится в состоянии сбоя (sayHello
не определено где-либо в коде).
Я пытался переключить кнопку «местные жители будут очищены» в окне REPL, но, похоже, это не решает проблему.
Если есть способ запустить тесты вне REPL (или в новом REPL для каждого запуска теста), я бы согласился с этим в качестве решения.
Все, что я хочу, - это соответствие 1: 1 между тестируемым исходным кодом и результатом теста.
Заранее спасибо за помощь.