eranpeer / FakeIt

C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
MIT License
1.22k stars 169 forks source link

Add Any verification specifier #198

Closed oriolarcas closed 4 years ago

oriolarcas commented 4 years ago

A flexible test may want to ignore invocations of trivial methods, like getters and read only functions. Such methods may be called any number of times, including none.

Currently FakeIt has no way to discard the invocations of a sequence of methods. Using ClearInvocationHistory would discard all the methods, trivial or not.

This new verification specifier, Any, marks a method or sequence of methods as verified, regardless of the number of invocations (including none).

Example:

Verify(Method(mock, important_method)).Exactly(3);
Verify(Method(mock, trivial_getter)).Any();
VerifyNoOtherInvocations(mock);

Using this modifier, a flexible test may white-list the trivial methods, and make sure that important methods are not called.

oriolarcas commented 4 years ago

Doing pull request to dev

coveralls commented 4 years ago

Coverage Status

Coverage increased (+6.0e-05%) to 99.924% when pulling 53beb4c2cfa6b59a35d08f42b895e6142b879582 on oriolarcas:master into 814f28cd509ef2a8cdf7fe370bd9ec6d3b181dc7 on eranpeer:master.