Closed naps62 closed 11 months ago
What you're describing is definitely not the behavior I'd expect either. Unfortunately, I don't have a good solution to this right now...
According to http://elixir-lang.readthedocs.io/en/latest/technical/scoping.html:
Any unbound identifier is treated as a local function call
When we're using the :passthrough
flag and call indirect_value
, we enter the scope of MyMod
and execute the locally scope function since we're not referencing it via the module name. The only workarounds I have to this at the moment are:
value()
with __MODULE__.value()
indirect_value
in your testImplementation would look like this:
def indirect_value(value) do
value.()
end
Test will look like this:
assert MyMod.indirect_value(&MyMod.value/0) == 2
All of this being said, I'm going to keep thinking about this for a little while longer to see if we could get the expected behavior to function properly.
I'm having the same exact problem! Would love to see a solution.
same issue here
I've been looking for a solution for this on and off.
The only potential path I've found so far is manually updating the beam file after compilation. There are still a couple hooks I need to jump through to get it working but I'll keep this thread updated.
+1
+1
+1
Having the same issue here, has there been any solutions or workarounds found?
I'm finding that this package does not work when mocking functions that are called indirectly. Here's the example I came up with to reproduce:
and here are some assertions I tried to make for it:
I'm not sure how I should use the package to test this kind of calls, if that's at all possible