gpt4 book ai didi

clojure - 有没有办法在 clojure 中测试系统/退出?

转载 作者:行者123 更新时间:2023-12-01 07:10:02 25 4
gpt4 key购买 nike

我有运行 (System/exit 0) 的代码我想测试那部分代码。我尝试用 with-redefs 测试它但我发现我不允许对 Java 方法这样做。我该如何去测试这个?

最佳答案

抱歉,您不能直接模拟该函数,但就像所有优秀的 CS 问题*一样,您可以通过添加一个额外的间接级别来解决它:

(defn exit-now! [] 
(System/exit 0))

然后在您的测试中,您可以使用重定义退出对 clojure 函数 exit-now 的调用。
(with-redefs [exit-now! (constantly "we exit here")]
(is (= "we exit here" (code that calls exit))))

也许你可以插入该功能的开发人员远离从项目内部调用 System/exit 的做法。

*当然,性能问题除外。

关于clojure - 有没有办法在 clojure 中测试系统/退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29289151/

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