我不明白为什么会出现下面的spec错误。
有人能告诉我为什么吗?
(ns spec-test
(:require [clojure.spec.alpha :as s]
[clojure.spec.test.alpha :as stest]))
;;; spec definitions
(s/def :msds.fontspec/tag #{:fontspec})
(s/def ::id string?)
(s/def ::size int?)
(s/def ::family string?)
(s/def ::color string?)
(s/def :msds.fontspec/attrs
(s/keys :req-un [::id ::size ::family ::color]))
(s/def :msds.fontspec/content (s/cat))
(s/def ::fontspec
(s/keys :req-un [:msds.fontspec/tag :msds.fontspec/attrs :msds.fontspec/content]))
(s/def ::fontspecs (s/* ::fontspec))
;;; spec application
(defn transform-fontspecs
[fontspecs]
(->> fontspecs
(map (fn [{:keys [attrs] :as fontspec}]
[(get attrs :id) (dissoc attrs :id)] ))
(into {}) ))
(s/fdef transform-fontspecs
:args (s/cat :fontspec ::fontspecs))
(stest/instrument `transform-fontspecs)
;;; test code
(def test-sample
'({:tag :fontspec,
:attrs {:id "283f1EV", :size 21, :family "c2S6", :color ""},
:content ()}
{:tag :fontspec,
:attrs
{:id "BzYMt4eEm", :size -5, :family "q0xhOE3", :color "bhV3PsVh"},
:content ()}
{:tag :fontspec,
:attrs {:id "uA2i", :size -5, :family "HHGoD", :color "J47ZX935"},
:content ()}))
(transform-fontspecs test-sample)
以下是错误说明。
2. Unhandled clojure.lang.Compiler$CompilerException Error compiling src/spec_test.clj at (55:1) #:clojure.error{:phase :compile-syntax-check, :line 55, :column 1, :source "/home/philos/work/metapdf/src/spec_test.clj"} Compiler.java: 7648 clojure.lang.Compiler/load REPL: 1 metapdf.core/eval19243 REPL: 1 metapdf.core/eval19243 Compiler.java: 7177 clojure.lang.Compiler/eval Compiler.java: 7132 clojure.lang.Compiler/eval core.clj: 3214 clojure.core/eval core.clj: 3210 clojure.core/eval main.clj: 437 clojure.main/repl/read-eval-print/fn main.clj: 437 clojure.main/repl/read-eval-print main.clj: 458 clojure.main/repl/fn main.clj: 458 clojure.main/repl main.clj: 368 clojure.main/repl RestFn.java: 1523 clojure.lang.RestFn/invoke interruptible_eval.clj: 79 nrepl.middleware.interruptible-eval/evaluate interruptible_eval.clj: 55 nrepl.middleware.interruptible-eval/evaluate interruptible_eval.clj: 142 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn AFn.java: 22 clojure.lang.AFn/run session.clj: 171 nrepl.middleware.session/session-exec/main-loop/fn session.clj: 170 nrepl.middleware.session/session-exec/main-loop AFn.java: 22 clojure.lang.AFn/run Thread.java: 748 java.lang.Thread/run 1. Caused by clojure.lang.ExceptionInfo Spec assertion failed. Spec: #object[clojure.spec.alpha$regex_spec_impl$reify__2509 0x3660c4ee "clojure.spec.alpha$regex_spec_impl$reify__2509@3660c4ee"] Value: (({:tag :fontspec, :attrs {:id "283f1EV", :size 21, :family "c2S6", :color ""}, :content ()} {:tag :fontspec, :attrs {:id "BzYMt4eEm", :size -5, :family "q0xhOE3", :color "bhV3PsVh"}, :content ()} {:tag :fontspec, :attrs {:id "uA2i", :size -5, :family "HHGoD", :color "J47ZX935"}, :content ()})) Problems: val: ({:tag :fontspec, :attrs {:id "283f1EV", :size 21, :family "c2S6", :color ""}, :content ()} {:tag :fontspec, :attrs {:id "BzYMt4eEm", :size -5, :family "q0xhOE3", :color "bhV3PsVh"}, :content ()} {:tag :fontspec, :attrs {:id "uA2i", :size -5, :family "HHGoD", :color "J47ZX935"}, :content ()}) in: [0] failed: map? spec: :spec-test/fontspec alpha.clj: 132 clojure.spec.test.alpha/spec-checking-fn/conform! alpha.clj: 140 clojure.spec.test.alpha/spec-checking-fn/fn RestFn.java: 408 clojure.lang.RestFn/invoke spec_test.clj: 55 spec-test/eval19293 spec_test.clj: 55 spec-test/eval19293 Compiler.java: 7177 clojure.lang.Compiler/eval Compiler.java: 7636 clojure.lang.Compiler/load REPL: 1 metapdf.core/eval19243 REPL: 1 metapdf.core/eval19243 Compiler.java: 7177 clojure.lang.Compiler/eval Compiler.java: 7132 clojure.lang.Compiler/eval core.clj: 3214 clojure.core/eval core.clj: 3210 clojure.core/eval main.clj: 437 clojure.main/repl/read-eval-print/fn main.clj: 437 clojure.main/repl/read-eval-print main.clj: 458 clojure.main/repl/fn main.clj: 458 clojure.main/repl main.clj: 368 clojure.main/repl RestFn.java: 1523 clojure.lang.RestFn/invoke interruptible_eval.clj: 79 nrepl.middleware.interruptible-eval/evaluate interruptible_eval.clj: 55 nrepl.middleware.interruptible-eval/evaluate interruptible_eval.clj: 142 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn AFn.java: 22 clojure.lang.AFn/run session.clj: 171 nrepl.middleware.session/session-exec/main-loop/fn session.clj: 170 nrepl.middleware.session/session-exec/main-loop AFn.java: 22 clojure.lang.AFn/run .lang.Thread/run
您应该检查problems
部分,其中显示val
和failed:map?
。问题是,您使用的regex操作像s/*
,当嵌套时,它会将结构扁平化,因此它需要的是一个映射而不是一个集合。您应该在这里只使用coll-of
,imho。请参阅https://clojure.org/guides/spec#_collections。:msds.fontspec/content
规范可能应该更新为不使用cat
而只使用vector?
或类似的东西。
问题内容: 我在运行Android单元测试时遇到问题。尝试运行简单测试时遇到此错误。 这是日志: Blockquote java.lang.RuntimeException:无法解析以下活动:Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.wsandroid.Activities / .SplashActivi
我想根据参考书向systemd注册服务。但是,如果您输入, 你会得到一个错误。我解决不了。 无法启动apasn。服务:单位apasn。服务未正确加载:参数无效。请参阅系统日志和“systemctl status apasn”。详情请咨询服务部。
这是logcat。我需要澄清这个错误,请社区 我做了更改,但我再次得到这个错误??
问题内容: 对于没有JS经验的人,您对学习Node.js有什么建议? 我在论坛上阅读了很多有关事件驱动,非阻塞,异步,回调等内容的信息,但我不知道那是什么! 在哪里可以学习基础知识,以便理解所有术语以及将来的node.js? 谢谢! 问题答案: 您提到的概念(事件驱动,非阻塞,异步,回调)不是特定于JavaScript的,在更一般的上下文中理解它们非常有价值。它们都围绕着优雅地处理我们无法控制的资
现在我正在尝试从git运行克隆应用程序https://github.com/frinder/frinder-app但问题是该应用程序制作了很长时间,所以应该改变bulid.gradle 但是当我尝试相同的同步实现“com.android.支持:动画矢量可绘制:28.0.0”,但如果我删除它,请继续向我显示错误28.0.0它显示如下 但我不知道是什么造成了不完全相同的版本 这是应用程序build.g
我在Android Studio中使用Firebase工具将Firebase消息传递添加到我的应用程序中,我在我的应用程序中遇到了一个问题(添加Firebase消息传递之前没有错误)。我在App Level gradle中的当前设置: 我已使用项目结构菜单将所有依赖项更新为最新版本。在我写这个问题时,firebase messaging的最新版本是20.0.0,适用于所以问题不在于更新到最新版本。