を実行しながら、それぞれの場合、次のようなExUnit.start
モックを準備しますmeck
defmodule MyModule.FooTest do
use ExUnit.Case, async: false # explicitly sync
import :meck
alias MyModule.Foo
alias MyModule.Baz # to be mocked
test "call_baz" do
expect(Baz, :some_async_method, [
{[], :meck.val(Task.async(fn -> %{"name" => "otiai10"} end)},
])
assert Foo.call_baz() == %{"name" => "otiai10"}
end
end
しかし、 を返す別のテストによって嘲笑されている{"name" => "otiai200"}
ため、を返します。Baz.some_async_method
{"name" => "otiai200"}
これは確かに、別のテスト ケースで嘲笑されたものの応答です。(彼らはまた、彼らの声明async: false
でオプションを与えられています)use
問題は何ですか、async: false
オプションが機能しませんか? またはあざけるTask.async
ことはお勧めできませんか?または、基本的な間違いを犯していますか?
ありがとうございました