我在我的 test/ 目录中定义了一个模块,用于模拟:crypto.strong_rand_bytes/1
输出随机值的函数。
在我的测试配置中,我替换了包含函数的“模块”,如下所示:
config :lottosim, :crypto, Lottosim.Test.RandomQueue
lib/ 目录下的模块通过定义一个模块属性来引用这个配置:
@crypto Application.get_env(:lottosim, :crypto) || :crypto
然后调用该函数:
@crypto.strong_rand_bytes(1)
.
因为 test/ 目录中的模块 RandomQueue 是在我的 lib/ 目录中的模块之后编译的,所以在我第一次编译我的项目时会显示以下警告MIX_ENV=test
:
warning: function Lottosim.Test.RandomQueue.strong_rand_bytes/1 is undefined (module Lottosim.Test.RandomQueue is not available)
到实际运行测试时,模块已正确定义并且一切都通过了。
此外,警告不再显示在以下编译中,每次运行时仅显示一次mix clean
。
有没有办法忽略这个警告?
有没有更好的方法来“劫持”未显示此警告的功能?