diff --git a/lib/src/mock.dart b/lib/src/mock.dart index 3d552ddd..8b1393de 100644 --- a/lib/src/mock.dart +++ b/lib/src/mock.dart @@ -706,17 +706,28 @@ _InOrderVerification get verifyInOrder { }; } +void _throwMockArgumentError(method) => + throw new ArgumentError('$method must only be given a Mock object'); + void verifyNoMoreInteractions(var mock) { - var unverified = mock._realCalls.where((inv) => !inv.verified).toList(); - if (unverified.isNotEmpty) { - fail("No more calls expected, but following found: " + unverified.join()); + if (mock is Mock) { + var unverified = mock._realCalls.where((inv) => !inv.verified).toList(); + if (unverified.isNotEmpty) { + fail("No more calls expected, but following found: " + unverified.join()); + } + } else { + _throwMockArgumentError('verifyNoMoreInteractions'); } } void verifyZeroInteractions(var mock) { - if (mock._realCalls.isNotEmpty) { - fail("No interaction expected, but following found: " + - mock._realCalls.join()); + if (mock is Mock) { + if (mock._realCalls.isNotEmpty) { + fail("No interaction expected, but following found: " + + mock._realCalls.join()); + } + } else { + _throwMockArgumentError('verifyZeroInteractions'); } } diff --git a/test/mockito_test.dart b/test/mockito_test.dart index 4cc31bad..7802ea29 100644 --- a/test/mockito_test.dart +++ b/test/mockito_test.dart @@ -936,6 +936,11 @@ void main() { verify(mock.methodWithoutArgs()); verifyNoMoreInteractions(mock); }); + + test("throws if given a real object", () { + expect( + () => verifyNoMoreInteractions(new RealClass()), throwsArgumentError); + }); }); group("verifyInOrder()", () {