Обновлен до версии, которая действительно, кажется, делает то, что задумал, в отличие от моего первоначального ответа ...
Эта версия, кажется, работает:
(ns clojure-refactoring.rename-fn-test
(:use clojure.test
[clojure.contrib.with-ns :only [with-ns]]))
(deftest test-fn-location
(create-ns 'refactoring-test-fn-rename)
(with-ns 'refactoring-test-fn-rename
(clojure.core/refer-clojure)
(defn a [b] (inc b)))
(is (not= (find-var 'refactoring-test-fn-rename/a)
nil))
(remove-ns 'refactoring-test-fn-rename))
Кроме того, вам действительно нужно изменить все вхождения _
в именах пространства имен на -
, и наоборот для имен файлов.
С этими изменениями тест проходит нормально для меня. ( Я даже не пытался запустить его По-видимому, он все еще работает без внесения изменений _
/ -
, но на самом деле, вам нужно это сделать! работать, если ты не следуешь ему.)
По какой-то причине код из вопроса, по-видимому, создавал Var a
в пространстве имен, в котором определялся тест, поэтому (find-var 'clojure-refactoring.rename-fn-test/a)
возвращал Var, тогда как тест не удался. С учетом вышеизложенного, (find-var 'clojure-refactoring.rename-fn-test/a)
возвращает nil
, как и ожидалось.