我正在使用meck在大多数情况下它效果很好。但是,我遇到了以下错误:
Elixir
(ErlangError) erlang 错误: {:undefined_function, {OAuth2.Strategy.AuthCode, :new, 2}}
我发现:new
是OAuth2.Strategy
的__using__
宏中定义的函数。这意味着 :new
未定义 OAuth2.Strategy.AuthCode
。在这种情况下如何模拟 :new
?
最佳答案
Meck 在运行时创建模拟,因此它永远无法在 Elixir 中模拟宏。如果您的宏最终创建了一个函数,然后将其编译成模块,您应该能够模拟它(前提是您知道函数的名称)。
关于elixir - 在 Elixir 中,如何模拟 'used' 模块中定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28880984/