2

在对 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)))
4

0 回答 0