3

現在、構成値を混在させて処理するのに苦労しています (特にテストの実行時)。これは私のシナリオです:

  • いくつかの一般的な構成値 (キー、シークレット、リージョン) を持つクライアント ライブラリがあります。
  • リージョン値の設定がない場合にどうなるかをテストしたい
  • test.exsファイルがありません/config

私は現在、このようにしています(そしてこれは機能しません)。テスト中のモジュール (簡略化):

defmodule Streamex.Client do
  @api_region Application.get_env(:streamex, :region)
  @api_key Application.get_env(:streamex, :key)
  @api_secret Application.get_env(:streamex, :secret)
  @api_version "v1.0"
  @api_url "api.getstream.io/api"

  def full_url(%Request{} = r) do
    url = <<"?api_key=", @api_key :: binary>>
  end
end

テスト:

setup_all do
  Streamex.start
  Application.put_env :streamex, :key, "KEY"
  Application.put_env :streamex, :secret, "SECRET"
  Application.put_env :streamex, :secret, ""
end

実行時に何が起こるかとmix testいうと、これらの値から属性を設定するメイン モジュールは、有効な値を見つけることができないため、次のエラーをスローします。

lib/streamex/client.ex:36: invalid literal nil in <<>>

私はまだ始めているので、これは明らかなように思えるかもしれませんが、ドキュメントを読んでも解決策が見つかりません。

4

1 に答える 1