elixir - 在 Elixir 中,如何模拟 'used' 模块中定义的函数?

标签 elixir meck

我正在使用meck在大多数情况下它效果很好。但是,我遇到了以下错误: Elixir (ErlangError) erlang 错误: {:undefined_function, {OAuth2.Strategy.AuthCode, :new, 2}}

我发现:newOAuth2.Strategy__using__宏中定义的函数。这意味着 :new 未定义 OAuth2.Strategy.AuthCode。在这种情况下如何模拟 :new

最佳答案

Meck 在运行时创建模拟,因此它永远无法在 Elixir 中模拟宏。如果您的宏最终创建了一个函数,然后将其编译成模块,您应该能够模拟它(前提是您知道函数的名称)。

关于elixir - 在 Elixir 中,如何模拟 'used' 模块中定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28880984/

相关文章:

elixir - 将函数传递给 defimpl "for"选项

elixir - 避免 Eex 中的 JSON 转义

erlang - 使用 meck (Erlang) 时导致 "not mocked"错误的原因是什么?

erlang - 如何使用 Meck 在 Erlang 中模拟对象?

elixir - Ecto如何过滤一个有多个直通关系

elixir - 在 Elixir 中动态加载/卸载模块,类似于插件系统

Elixir/Phoenix 在加入 channel 时传递 payload

erlang - meck :validate? 有什么意义

二郎梅克 : How does one mock only a specific function clause?