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:
    Mockito.verify(Object), Mockito.verify(Object, org.mockito.verification.VerificationMode)
    • Method Detail

      • 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