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)))
...