Interface VerificationCollector

All Superinterfaces:
TestRule

public interface VerificationCollector extends TestRule
Use this rule in order to collect multiple verification failures and report at once. This new API in incubating - let us know if you find this feature useful. Should it be turned on by default with Mockito JUnit Rule?

Although VerificationCollector is a JUnit Rule, it does not necessarily have to be used as a Test Rule - see collectAndReport().

In the example below, the verification failure thrown by byteReturningMethod() does not block verifying against the simpleMethod(). After the test is run, a report is generated stating all collect verification failures.


   @Rule
   public VerificationCollector collector = MockitoJUnit.collector();

   @Test
   public void should_fail() {
       IMethods methods = mock(IMethods.class);

       verify(methods).byteReturningMethod();
       verify(methods).simpleMethod();
   }
 
Since:
2.1.0
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    Enforce all verifications are performed lazily.
    void
    Collect all lazily verified behaviour.

    Methods inherited from interface org.junit.rules.TestRule

    apply
  • Method Details

    • collectAndReport

      void collectAndReport() throws MockitoAssertionError
      Collect all lazily verified behaviour. If there were failed verifications, it will throw a MockitoAssertionError containing all messages indicating the failed verifications.

      Normally, users don't need to call this method because it is automatically invoked when test finishes (part of the JUnit Rule behavior). However, in some circumstances and edge cases, it might be useful to collect and report verification errors in the middle of the test (for example: some scenario tests or during debugging).

      
         @Rule
         public VerificationCollector collector = MockitoJUnit.collector();
      
         @Test
         public void should_fail() {
             IMethods methods = mock(IMethods.class);
      
             verify(methods).byteReturningMethod();
             verify(methods).simpleMethod();
      
             //report all verification errors now:
             collector.collectAndReport();
      
             //some other test code
         }
       
      Throws:
      MockitoAssertionError - If there were failed verifications
      Since:
      2.1.0
    • assertLazily

      VerificationCollector assertLazily()
      Enforce all verifications are performed lazily. This method is automatically called when used as JUnitRule and normally users don't need to use it.

      You should only use this method if you are using a VerificationCollector inside a method where only this method should be verified lazily. The other methods can still be verified directly.

      
         @Test
         public void should_verify_lazily() {
             VerificationCollector collector = MockitoJUnit.collector().assertLazily();
      
             verify(methods).byteReturningMethod();
             verify(methods).simpleMethod();
      
             collector.collectAndReport();
         }
       
      Returns:
      this
      Since:
      2.1.0