@@ -363,6 +363,24 @@ defmodule MoxTest do
363
363
assert_raise Mox.VerificationError , message , & verify! / 0
364
364
end
365
365
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
+
366
384
test "verifies all mocks for the current process in global mode" do
367
385
set_mox_global ( )
368
386
@@ -385,6 +403,27 @@ defmodule MoxTest do
385
403
message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
386
404
assert_raise Mox.VerificationError , message , & verify! / 0
387
405
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
388
427
end
389
428
390
429
describe "verify!/1" do
0 commit comments