Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 加味精?使用不支持的字符引发RuntimeException_Unit Testing_Clojure - Fatal编程技术网

Unit testing 加味精?使用不支持的字符引发RuntimeException

Unit testing 加味精?使用不支持的字符引发RuntimeException,unit-testing,clojure,Unit Testing,Clojure,我正在尝试运行一个预期会引发一些异常的测试。 抛出?工作正常,但当我尝试用msg抛出时?会抛出异常。为了测试它,我从 代码: (deftest check-exception (testing "If Exception is thrown" (is (thrown-with-msg? java.lang.ArithmeticException #\"Divide by zero\" (/ 1 0))))) 编译错误: 线程“main”clojure.lang.LispReader

我正在尝试运行一个预期会引发一些异常的测试。
抛出?
工作正常,但当我尝试用msg抛出
时?
会抛出异常。为了测试它,我从

代码:

(deftest check-exception
  (testing "If Exception is thrown"
    (is (thrown-with-msg? java.lang.ArithmeticException #\"Divide by zero\" (/ 1 0)))))
编译错误:

线程“main”clojure.lang.LispReader$ReaderException中出现异常:java.lang.RuntimeException:不支持的字符:\“Divide”


需要传递的第三个参数是
正则表达式。
。如何传递该参数?

正则表达式的传递方式如下:

(deftest check-exception
  (testing "If Exception is thrown"
    (is (thrown-with-msg? java.lang.ArithmeticException #"^.*Divide by zero.*$" (/ 1 0)))))

Clojure中regexp的文本是
#“。。。“
。因此,您在那里使用的
\
是错误的。如果您希望在regexp文本中有引号,那么您可以像引用一样引用它们。例如,
”\“除以零”

编辑:混乱的根源(字面意思)

文档字符串中实际包含以下行:

但这是因为需要在文档注释中引用
。仅查看回复中的文档,例如
doc

user=> (require 'clojure.test)
user=> (doc clojure.test)
...
   (is (thrown-with-msg? ArithmeticException #"Divide by zero"
                         (/ 1 0)))
...

显示正确的代码。

为什么在引号前加上
\`?regexp文本是
\\\”`-如果你想
在内部使用
\\”\“…”
我刚从文档中选取并粘贴了它。但我猜它是错误的。我通过传递
\\\”^..*.除以零.*$”
什么文档?可能有一个PR是正确的:但你看的是源代码,而不是上面的链接?例如。
user=> (require 'clojure.test)
user=> (doc clojure.test)
...
   (is (thrown-with-msg? ArithmeticException #"Divide by zero"
                         (/ 1 0)))
...