gpt4 book ai didi

unit-testing - Clojure "is"断言未按预期工作

转载 作者:行者123 更新时间:2023-12-04 04:22:26 25 4
gpt4 key购买 nike

我正在为我的第一个 Clojure 项目编写测试用例。在这里,如果 ":meat"的值为空,我希望测试失败:

(deftest order-sandwich
(let [response {:meat "" :bread "yes" :add-on "lettuce"}]
(is (= (:bread response) "yes"))
(is (not (nil? (:meat response))))))

但是我的测试运行成功(返回“nil”)。

有人知道为什么会这样吗?有一个更好的方法吗?

我提前谢谢你!!

最佳答案

空字符串不是 nil :

(nil? "")
=> false

您想测试它是否为空,而不是 nil ,这可以使用 seq 来完成或 empty? (除其他外):
(is (not (empty? (:meat response))))
; Or use not-empty

; There's also the arguably more idiomatic way

(is (seq (:meat response)))

关于unit-testing - Clojure "is"断言未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55171837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com