首页 > 解决方案 > 如何导入异常以用于 clojure 测试

问题描述

我正在尝试按照此处thrown?所述进行测试,但出现以下错误。

   7 | (deftest exception-test
   8 |   (is (thrown? ArithmeticException (/ 1 0))) 
----------------------^---------------------------------------------------------
Use of undeclared Var demo.app-test/ArithmeticException
--------------------------------------------------------------------------------
   9 |   )

我想我必须以某种方式导入它,但无法弄清楚。命名空间如下所示:

(ns demo.app-test
  (:require [cljs.test :refer (deftest is)]))

我正在使用shadow-cljs

标签: clojureclojurescript

解决方案


Javascript 和 ClojureScript 没有ArithmethicException- 这个测试很可能取自 Java/Clojure 示例。在 JavaScript 中除以零会给你“无穷大”(不抛出异常)。

Clojure 和 ClojureScript 之间有明显的区别,它们可以做什么和使用什么。有一些方法可以在cljc两个平台上使用相同的源代码(例如 ),但是您必须自己处理平台的细节(cljc 中有阅读器宏来帮助解决这个问题)。

注意:如果您正在编写宏,您可以访问 CLJS 中的 ArithmethicException,这又只是 Clojure 在编译时运行的,但这只是“永远不会工作”答案的细微差别。


推荐阅读