Comments (3)
Finally got around to looking at this today. I couldn't reproduce it with the simple test on my (faster?) machine, so I had to create this monster version:
-module(mt_reload_test).
-include_lib("eunit/include/eunit.hrl").
-compile(export_all).
proc_fn() ->
receive
{do_call, Arg} ->
?debugFmt("[~p] called: ~p~n", [self(), mt_app:test_fn(Arg)])
end,
proc_fn().
reload_test() ->
Proc = spawn(fun proc_fn/0),
meck:new(mt_app, [passtrough]),
meck:expect(mt_app, test_fn, fun(Arg) -> {mocked, Arg} end),
spawn(fun() ->
lists:map(fun(N) ->
timer:sleep(1),
Proc ! {do_call, N}
end, lists:seq(0, 800))
end),
[meck:expect(mt_app, test_fn, fun(Arg) -> {mocked2, Arg} end) || _ <- lists:seq(1, 5)],
timer:sleep(4500),
?debugFmt("History: ~p~n",[meck:history(mt_app)]),
?assertEqual(801, meck:num_calls(mt_app, test_fn, '_'))
.
I'm also not sure why the reload case is there, and why we don't store history while reloading is active (history is historical, so it should be stored regardless I think). By removing it, this test passes and it doesn't seem to break any other tests.
from meck.
Hi,
Thanks for checking and for the fix!
from meck.
@luos Thanks for reporting it and providing a base test case, very much appreciated!
from meck.
Related Issues (20)
- Remove compatibility for Erlang R15 and R16
- Is there a convenient way to repalce a moudle by a stub moudle, which not need to expect each function ? HOT 2
- Crash when mocking Elixir 1.8-rc.0 compiled module HOT 1
- Issues with interaction of meck with cover + eunit HOT 5
- Module references in typespecs are not included when renaming modules HOT 2
- Warnings in cover server when mecking distributed nodes with rebar3 do eunit,ct HOT 2
- meck:ret_spec() opaqueness violates documented usage patterns HOT 4
- Can not unload after passthrough meck HOT 3
- merge_expects together with passthrough seems does not set up the mocking HOT 2
- Getting meck_proc already started errors HOT 7
- References to hamcrest yield dialyzer warnings HOT 2
- Release request HOT 3
- One of the example shown on README page doesn't work HOT 2
- Update GitHub Actions to use setup-beam HOT 2
- Create proper issue templates
- Compilation results in files under deps/meck being updated HOT 3
- How to install on windows(win10) HOT 1
- How to install meck on windows HOT 2
- Deleting existing function does not work HOT 1
- List of expected functions for mocked module
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from meck.