在对 ClojureScript 项目使用引导时,如何使外部非CLJSJS JavaScript 库可用于测试代码(相对于应用程序代码)?
当应用程序代码包含在与库相同的 HTML 页面中时,可以访问它。
(使用leiningen + figwheel,测试代码在与应用程序代码相同的上下文中运行——在我的index.html
页面上——因此测试代码知道第三方 js 库。)
测试代码的引导中是否有类似的页面上下文?conj
或者有没有办法["resources/third-party/library.js"]
进入源或资源路径,以便单元测试可以引用与应用程序代码相同的库?
当我运行boot auto-test
它说#object[ReferenceError ReferenceError: Can't find variable: CodeMirror]
。就我而言, CodeMirror是第三方库。我的单元测试需要一个 CodeMirror 实例,所以他们可以.setValue
,然后调用一堆 CodeMirror 方法来告诉实例要做什么,然后验证实例的新值和光标位置。我正在测试我的 ClojureScript 是否对 CodeMirror 提出了正确的调用以达到预期的效果。
我已经能够使用 CodeMirror 的最新CLJSJS版本,但它没有通过我的单元测试,而直接来自 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)))