ClojureScript + boot:使非CLJSJS库可用于测试代码吗?

时间:2017-02-13 19:34:12

标签: clojurescript boot-clj

对ClojureScript项目使用boot时,如何使外部 CLJSJS JavaScript库可用于测试代码(vs应用程序代码)?

当应用程序代码与库包含在同一HTML页面上时,可以访问它。

(使用leiningen + figwheel,测试代码在与我的index.html页面上的应用程序代码相同的上下文中运行 - 因此测试代码知道第三个party js library。)

boot中是否有类似的页面上下文用于测试代码?或者有没有办法conj["resources/third-party/library.js"]这样的东西到源或资源路径上,这样单元测试可以引用应用程序代码所在的库?

当我运行boot auto-test时,它会显示#object[ReferenceError ReferenceError: Can't find variable: CodeMirror]CodeMirror是我案例中的第三方图书馆。我的单元测试需要一个CodeMirror实例,因此它们可以.setValue,然后调用一堆CodeMirror方法来告诉实例要做什么,然后验证实例的新值和光标位置。我正在测试我的ClojureScript是否能够正确调用CodeMirror以获得预期的效果。

我已经能够使用最新的CLJSJS版本的CodeMirror,但它没有通过我的单元测试,而直接来自CodeMirror的最新非CLJSJS版本确实通过了。所以我猜我需要最新的CodeMirror,但尚未通过CLJSJS提供。

这是build.boot文件的一部分:

(deftask testing []
  (set-env! :source-paths #(conj % "test/cljs"))
  identity)

(deftask test []
  (comp (testing)
        (test-cljs :js-env :phantom
                   :exit?  true)))

(deftask auto-test []
  (comp (testing)
        (watch)
        (test-cljs :js-env :phantom)))

0 个答案:

没有答案