【问题标题】:lein test (:numbers) examplelein 测试 (:numbers) 示例
【发布时间】:2014-10-15 12:01:43
【问题描述】:

来自

 lein help  test

,,

(deftest ^:integration network-heavy-test
   (is (= [1 2 3] (:numbers (network-operation)))))

什么是

  (:numbers (network-operation)

在这里做什么?

我添加了网络操作功能并了解network-heavy-test2(并且它按预期通过了。

我假设 (:numbers ..):numbers 需要在某处添加/定义/调用?

network-heavy-test 失败

FAIL in (network-heavy-test1) (core_test.clj:23)
expected: (= [1 2 3] (:numbers (network-operation)))
actual: (not (= [1 2 3] nil))

....

(defn network-operation [] [1 2 3])

(deftest ^:integration network-heavy-test2
  (is (= [1 2 3] (network-operation))))

(deftest ^:integration network-heavy-test
   (is (= [1 2 3] (:numbers (network-operation)))))

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    :numbers,当作为函数调用时,在映射中查找键 :numbers。所以,network-operation 必须返回一个地图:

    (defn network-operation []
      {:numbers [1 2 3] :extras "whatever"})
    

    【讨论】:

    • 好的,谢谢。 :numbers 是 clojure 的“内置”关键字吗?还是只是一个“通用”(用户创建的)关键字(与其他关键字一样)?
    • 如果 :numbers 是“内置”,它在哪里记录?我浏览了 Clojure 文档,但没有找到
    • 它只是一个关键字,就像其他关键字一样。不是任何类型的特例。
    • 好的,我明白了,':numbers' 是在网络操作中定义的,所以它不是“内置”。
    • 在 Clojure 中,本身没有“内置关键字”之类的东西 - Clojure 中的关键字是代表自己的标记。
    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 2012-09-12
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    • 2013-11-12
    相关资源
    最近更新 更多