在Elixir中,如何模拟在';使用';模块?

在Elixir中,如何模拟在';使用';模块?,elixir,meck,Elixir,Meck,我正在使用,它在大多数情况下都非常有效。但是,我遇到了以下错误: 长生不老药 (ErlangError)erlang错误:{:未定义的_函数,{OAuth2.Strategy.AuthCode,:new,2} 我发现:new是在OAuth2.Strategy的\uuuu中定义的一个函数,使用的是宏。这意味着:未定义新的OAuth2.Strategy.AuthCode。我如何模拟:在这种情况下新建?Meck在运行时创建模拟,因此它永远无法在Elixir中模拟宏。如果您的宏最终创建了一个函数,然后

我正在使用,它在大多数情况下都非常有效。但是,我遇到了以下错误:
长生不老药
(ErlangError)erlang错误:{:未定义的_函数,{OAuth2.Strategy.AuthCode,:new,2}


我发现
:new
是在
OAuth2.Strategy
\uuuu中定义的一个函数,使用的是
宏。这意味着
:未定义新的
OAuth2.Strategy.AuthCode
。我如何模拟
:在这种情况下新建

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

您不能模拟定义该函数的模块吗?也许是OAuth2。策略。新的?试过了,但没用。我想这是因为只有在使用了OAuth2.Strategy
时才定义了cos
new
。必须依赖于创建另一个模块,将所有相关代码放在函数中,并在测试中模拟出来。