【发布时间】:2015-08-26 06:55:04
【问题描述】:
我正在尝试在使用 core.async go 宏时编写单元测试。天真地写测试,如下,看来go块里面的代码没有被执行。
(ns app.core-test
(:require [clojure.test :refer :all]
[clojure.core.async :as async]))
(deftest test1 []
(let [chan (async/chan)]
(async/go
(is (= (async/<! chan) "Hello")))
(async/go
(async/>! chan "Hello"))))
我已经设法让以下工作,但它非常hacky。
(deftest test1 []
(let [result (async/chan)
chan (async/chan)]
(async/go
(is (= (async/<! chan) "Hello"))
(async/>! result true))
(async/go
(async/>! chan "Hello"))
(async/alts!! [result (async/timeout 10000)])))
关于如何正确执行此操作的任何建议?
【问题讨论】:
标签: unit-testing clojure macros core.async