【发布时间】:2022-01-05 15:41:28
【问题描述】:
我需要什么: 具有两个参数的函数规范:
- 关键字和字符串的哈希映射。
- 可能有字符串或关键字的向量但如果它是关键字它必须存在于 hash-map 中(第一个参数)
(您的答案不必涵盖所有这些,主要是我需要一种方法来判断它是否是关键字,它必须存在于 hash-map 中)
这是我所拥有的:
(这是一个示例,表明可以访问 :args 中的两个参数,我知道它不会测试任何东西并且总是失败,因为返回 nil)
(ns my-example.core
(:require
[clojure.spec.alpha :as spec]))
(defn my-example [m v] nil)
(spec/fdef my-example
:args (fn [[m v]] nil))
这种 fn 类型的作品(可以创建一个可以按我想要的方式工作的函数),但它不是很有描述性,并且当它失败时(假设有 (stest/instrument `my-example)) 它只是向我展示了函数体(像这样:(fn [[m v]] nil))。
这是解决我的问题的唯一方法还是有更好的方法?
我还尝试定义一个规范并在 :args 中使用它:
(spec/def :my-example/my-check (fn [[m v]] nil))
(spec/fdef my-example
:args :my-example/my-check)
但结果是一样的。
【问题讨论】:
标签: clojure clojure.spec