@Test(expected = NullPointerException.class) public void testValidateInstanceMethodsShouldThrowNullPointerExceptionIfErrorsIsNull() { // Given: // When: underTest.validateInstanceMethods(null); // Then: expect exception }
@Test public void testValidateInstanceMethodsShouldNotThrowExceptionIfNoErrorsExistAndTestMethodsAreAvailable() { // Given: List<Throwable> errors = new ArrayList<Throwable>(); doReturn(asList(testMethod)).when(underTest).computeTestMethods(); // When: underTest.validateInstanceMethods(errors); // Then: assertThat(errors).isEmpty(); }
@Test public void testValidateInstanceMethodsShouldAddExceptionIfComputeTestMethodsReturnsNoTestMethods() { // Given: List<Throwable> errors = new ArrayList<Throwable>(); doReturn(asList()).when(underTest).computeTestMethods(); // When: underTest.validateInstanceMethods(errors); // Then: assertThat(errors).hasSize(1); assertThat(errors.get(0)).hasMessage("No runnable methods"); }
@Test public void testValidateInstanceMethodsShouldNotThrowExceptionIfComputeTestMethodsWouldThrowExceptionButErrorsAlreadyExistsBefore() { // Given: List<Throwable> errors = new ArrayList<Throwable>(); doAnswer( new Answer<Void>() { @SuppressWarnings("unchecked") public Void answer(InvocationOnMock invocation) throws Throwable { ((List<Throwable>) invocation.getArguments()[0]).add(new Error()); return null; } }) .when(underTest) .validateTestMethods(errors); doThrow(IllegalArgumentException.class).when(underTest).computeTestMethods(); // When: underTest.validateInstanceMethods(errors); // Then: no exception }