欢迎!请参阅关于页面以了解有关此功能的更多信息。
我的 -main 函数从 *in* 读取参数,如下所示
-main
*in*
(defn -main [& args] (doseq [ln (line-seq (java.io.BufferedReader. *in*))] ; Do something... ))
我基本上用: $ lein run < input.txt 运行我的应用程序。
$ lein run < input.txt
我想测试这个函数,但不知道如何编写一个模拟 stdin 将数据传递给我的 -main 函数的测试用例。
谢谢。
*in* 是一个动态变量 - 你可以在测试中重新绑定它,使其从字符串(使用如 java.io.StringReader)读取。
使用 with-in-str。https://docs.clojure.org/clojure.core/with-in-str
with-in-str
(with-in-str "inputstring" (-main))