1
我經歷的萬應靈藥「入門」的教程,在使用下面的代碼片段:Elixir GenServer教程中的計時錯誤?
test "removes buckets on exit", %{registry: registry} do
KV.Registry.create(registry, "shopping")
{:ok, bucket} = KV.Registry.lookup(registry, "shopping")
Agent.stop(bucket)
assert KV.Registry.lookup(registry, "shopping") == :error
end
現在,create/2
使用cast
操作而lookup
使用call
。這意味着一個異步調用被執行,然後緊接着,一個假設異步操作成功執行的同步調用。當代碼本身是否正確時,計時問題是否會導致測試失敗,或者是否存在我缺少的cast
和call
的某些方面?