如何在Clojure中定义一个没有参数的函数?

4

我希望为我的一个小项目编写一些规格说明,但对于一个不提供任何参数的函数如何编写规格说明感到担心。

我想编写这个特定函数的规格说明:

(defn get-total-pages []
  (int (Math/ceil (/ (count (get-posts)) posts-per-page))))

它计算总页数,假设每页有posts-per-page篇文章。该函数本身有效,但在添加以下规范时会出现问题:
(s/fdef get-total-pages
  :args ()
  :ret int?)

没有警告提示,我无法对其执行任何 stest/check 操作。

:clojure.spec.test.check/ret {:result #error {
 :cause "Unable to construct gen at: [] for: clojure.spec.alpha$spec_impl$reify__2059@1232bda3"
...

当不使用:args映射来指定函数参数时,规范告诉我:args缺失,因此这是我的最终问题:如何规定一个没有参数的函数?

1个回答

9

对于没有参数的函数,:args 列表可以被指定为一个空的 s/cat 规范:

(s/fdef get-total-pages
  :args (s/cat)
  :ret int?)

非常感谢!那正是我正在寻找的。 - Mo0812

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接