1 package org.mockito.internal.verification; 2 3 import org.junit.Before; 4 import org.junit.Test; 5 import org.mockito.Mock; 6 import org.mockito.exceptions.base.MockitoAssertionError; 7 import org.mockito.internal.verification.api.VerificationData; 8 import org.mockito.verification.VerificationMode; 9 10 import static junit.framework.TestCase.assertEquals; 11 import static junit.framework.TestCase.fail; 12 import static org.mockito.Mockito.doThrow; 13 import static org.mockito.Mockito.verify; 14 import static org.mockito.MockitoAnnotations.initMocks; 15 16 public class DescriptionTest { 17 18 @Mock 19 private VerificationMode mockVerificationMode; 20 21 @Mock 22 private VerificationData mockVerificationData; 23 24 @Before 25 public void setUp() { 26 initMocks(this); 27 } 28 29 /** 30 * Test of verify method, of class Description. This test validates that the custom message is prepended to the 31 * error message when verification fails. 32 */ 33 @Test 34 public void verification_failure_should_prepend_expected_message() { 35 String failureMessage = "message should be prepended to the original message"; 36 String exceptionMessage = "original error message"; 37 String expectedResult = failureMessage + "\n" + exceptionMessage; 38 MockitoAssertionError error = new MockitoAssertionError(exceptionMessage); 39 doThrow(error).when(mockVerificationMode).verify(mockVerificationData); 40 41 Description instance = new Description(mockVerificationMode, failureMessage); 42 43 try { 44 instance.verify(mockVerificationData); 45 verify(mockVerificationMode).verify(mockVerificationData); 46 fail("Should not have made it this far"); 47 48 } catch (MockitoAssertionError e) { 49 assertEquals(expectedResult, e.getMessage()); 50 } 51 } 52 } 53