我有一個叫做Auth.app_id
的函數,它首先嚐試從應用程序的配置文件中讀取app_id
,如果缺少將查找系統環境。測試配置/系統環境獲取者
測試此功能的最佳做法是什麼?事先在內部測試中使用Application.put_env
和System.put_env
是非常糟糕的做法,因爲我們使用全局變量進行操作,並且異步測試將不可能。
test "getting config variables" do
Application.put_env(:appname, :app_id, "123")
assert Auth.app_id === "123"
end
test "getting env variables" do
System.put_env("APPNAME_APP_ID", "111")
assert Auth.app_id === "111"
end
這是getter函數內部的樣子:
def app_id do
Application.get_env(
:appname,
:app_id,
System.get_env("APPNAME_APP_ID")
)
end
的問題是,我使用這些干將,像APP_ID作爲PARAM返回URL相當多的功能。
我知道這是一個頭發分裂的細節,但那些不是真正的「吸氣劑」。不在OO意義上。事實上,你可以通過不隱藏其中的細節來推廣'app_id'函數,而是將值傳遞爲參數。 –