2

を実行しながら、それぞれの場合、次のような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ことはお勧めできませんか?または、基本的な間違いを犯していますか?

ありがとうございました

4

1 に答える 1