1

ディレクトリの内容に応じていくつかの関数を挿入するモジュールを使用してライブラリを作成しておりuse、さまざまなディレクトリで動作をテストしたいと考えています。現在、アプリケーション構成を使用してディレクトリへのパスを取得していますApplication.get_env/3

ディレクトリを変更している場合Application.put_env/4、これは有効なグローバル値であるため、テストを順番に実行する必要があることを意味しますよね?

への呼び出しをスタブアウトできますApplication.get_env/3か? または、別の方法で値を渡す必要がありますか? use(マクロ経由など)

4

1 に答える 1

1

最も簡単な方法は、値を引数として渡すことです。モジュールはApplication.get_env、渡された値がない場合にのみ依存する可能性があります。何かのようなもの:

Application.put_env(MyApplication, :some_key, "hello")

defmodule Test do
  def test(string \\ Application.get_env(MyApplication, :some_key)) do
    IO.inspect(string)
  end
end

# Default behaviour    
Test.test           # => "hello"

# In your tests
Test.test("world")  # => "world"
于 2015-05-23T11:12:45.597 に答える