@@ -363,6 +363,24 @@ defmodule MoxTest do
363363 assert_raise Mox.VerificationError , message , & verify! / 0
364364 end
365365
366+ test "verifies when mocks are over-called in the process in private mode" do
367+ set_mox_private ( )
368+
369+ verify! ( )
370+ expect ( CalcMock , :add , 1 , fn x , y -> x + y end )
371+
372+ # Emulate mock calls within code that has aggressive error handling
373+ try do
374+ CalcMock . add ( 1 , 2 )
375+ CalcMock . add ( 3 , 4 )
376+ catch _ , _ ->
377+ :ok
378+ end
379+
380+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
381+ assert_raise Mox.VerificationError , message , & verify! / 0
382+ end
383+
366384 test "verifies all mocks for the current process in global mode" do
367385 set_mox_global ( )
368386
@@ -385,6 +403,27 @@ defmodule MoxTest do
385403 message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
386404 assert_raise Mox.VerificationError , message , & verify! / 0
387405 end
406+
407+ test "verifies mocks are over-called for the current process in global mode" do
408+ set_mox_global ( )
409+
410+ verify! ( )
411+ expect ( CalcMock , :add , 1 , fn x , y -> x + y end )
412+
413+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
414+ assert_raise Mox.VerificationError , message , & verify! / 0
415+
416+ task =
417+ Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
418+ CalcMock . add ( 2 , 3 )
419+ CalcMock . add ( 4 , 5 )
420+ end )
421+
422+ Task . yield ( task )
423+
424+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
425+ assert_raise Mox.VerificationError , message , & verify! / 0
426+ end
388427 end
389428
390429 describe "verify!/1" do
0 commit comments