diff --git a/docs/changelog.txt b/docs/changelog.txt index d491c22f2..e1e19978f 100644 --- a/docs/changelog.txt +++ b/docs/changelog.txt @@ -1,5 +1,7 @@ Change log 2.0.0 -* Public Mockito support: +* PowerMockito changes: +** `verifyStatic` is replaced by `verifyStatic(Class)` +** `mockStatic` does not reset mocking process anymore. As result you may get the `UnfinishedVerificationException` or `UnfinishedStubbingException` ** Possible incapability due toString methods returns by default name of mocked. Change log 1.7.1 diff --git a/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/PowerMock.java b/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/PowerMock.java index 4e19ba6aa..1ed7f90cc 100644 --- a/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/PowerMock.java +++ b/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/PowerMock.java @@ -1471,7 +1471,7 @@ public static synchronized void verify(Object... objects) { if (mock instanceof Class) { verifyClass((Class) mock); } else { - MethodInvocationControl invocationControl = MockRepository.getInstanceMethodInvocationControl(mock); + EasyMockMethodInvocationControl invocationControl = (EasyMockMethodInvocationControl) MockRepository.getInstanceMethodInvocationControl(mock); if (invocationControl != null) { invocationControl.verify(); } else { @@ -2078,11 +2078,11 @@ private static synchronized void replay(Class... types) { */ private static synchronized void verifyClass(Class... types) { for (Class type : types) { - final MethodInvocationControl invocationHandler = MockRepository.getStaticMethodInvocationControl(type); + final EasyMockMethodInvocationControl invocationHandler = (EasyMockMethodInvocationControl) MockRepository.getStaticMethodInvocationControl(type); if (invocationHandler != null) { invocationHandler.verify(); } - NewInvocationControl newInvocationControl = MockRepository.getNewInstanceControl(type); + NewInvocationControlImpl newInvocationControl = (NewInvocationControlImpl) MockRepository.getNewInstanceControl(type); if (newInvocationControl != null) { try { newInvocationControl.verify(); diff --git a/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/EasyMockMethodInvocationControl.java b/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/EasyMockMethodInvocationControl.java index 9f3e4364b..0650ac53d 100644 --- a/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/EasyMockMethodInvocationControl.java +++ b/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/EasyMockMethodInvocationControl.java @@ -120,7 +120,6 @@ public synchronized Object replay(Object... mocks) { return null; } - @Override public synchronized Object verify(Object... mocks) { // Silently ignore verify if someone has verified the mock before. if (!hasVerified) { diff --git a/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/NewInvocationControlImpl.java b/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/NewInvocationControlImpl.java index 2a3dde383..f4dd02ffc 100644 --- a/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/NewInvocationControlImpl.java +++ b/powermock-api/powermock-api-easymock/src/main/java/org/powermock/api/easymock/internal/invocationcontrol/NewInvocationControlImpl.java @@ -25,6 +25,7 @@ import java.lang.reflect.Constructor; +//TODO rename to EasyMock public class NewInvocationControlImpl implements NewInvocationControl> { private final InvocationSubstitute substitute; private final Class subsitutionType; @@ -85,7 +86,6 @@ public synchronized Object replay(Object... mocks) { return null; } - @Override public synchronized Object verify(Object... mocks) { if (!hasVerified) { EasyMock.verify(substitute); diff --git a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/PowerMockito.java b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/PowerMockito.java index b1f1aa204..bf243885f 100644 --- a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/PowerMockito.java +++ b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/PowerMockito.java @@ -18,8 +18,6 @@ import org.mockito.MockSettings; import org.mockito.Mockito; -import org.mockito.internal.progress.MockingProgress; -import org.mockito.internal.progress.ThreadSafeMockingProgress; import org.mockito.stubbing.Answer; import org.mockito.stubbing.OngoingStubbing; import org.mockito.verification.VerificationMode; @@ -31,14 +29,11 @@ import org.powermock.api.mockito.internal.PowerMockitoCore; import org.powermock.api.mockito.internal.expectation.DefaultMethodExpectationSetup; import org.powermock.api.mockito.internal.mockcreation.DefaultMockCreator; -import org.powermock.api.mockito.internal.verification.DefaultConstructorArgumentsVerfication; import org.powermock.api.mockito.internal.verification.DefaultPrivateMethodVerification; import org.powermock.api.mockito.internal.verification.VerifyNoMoreInteractions; import org.powermock.api.mockito.verification.ConstructorArgumentsVerification; import org.powermock.api.mockito.verification.PrivateMethodVerification; import org.powermock.api.support.membermodification.MemberModifier; -import org.powermock.core.MockRepository; -import org.powermock.core.spi.NewInvocationControl; import org.powermock.reflect.Whitebox; import java.lang.reflect.Constructor; @@ -55,7 +50,7 @@ * @see Mockito */ public class PowerMockito extends MemberModifier { - private static final String NO_OBJECT_CREATION_ERROR_MESSAGE_TEMPLATE = "No instantiation of class %s was recorded during the test. Note that only expected object creations (e.g. those using whenNew(..)) can be verified."; + private static final PowerMockitoCore POWERMOCKITO_CORE = new PowerMockitoCore(); /** @@ -64,7 +59,6 @@ public class PowerMockito extends MemberModifier { * @param type the class to enable static mocking */ public static synchronized void mockStatic(Class type, Class... types) { - ThreadSafeMockingProgress.mockingProgress().reset(); DefaultMockCreator.mock(type, true, false, null, null, (Method[]) null); if (types != null && types.length > 0) { for (Class aClass : types) { @@ -118,7 +112,6 @@ public static void mockStatic(Class classMock, @SuppressWarnings("rawtypes") * @param mockSettings additional mock settings */ public static void mockStatic(Class classToMock, MockSettings mockSettings) { - ThreadSafeMockingProgress.mockingProgress().reset(); DefaultMockCreator.mock(classToMock, true, false, null, mockSettings, (Method[]) null); } @@ -211,7 +204,6 @@ public static synchronized T spy(T object) { * @see PowerMockito#spy(Object) */ public static synchronized void spy(Class type) { - ThreadSafeMockingProgress.mockingProgress().reset(); MockSettings mockSettings = Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS); DefaultMockCreator.mock(type, true, true, type, mockSettings, (Method[]) null); } @@ -288,8 +280,7 @@ public static PrivateMethodVerification verifyPrivate(Object object) throws Exce * @throws Exception If something unexpected goes wrong. * @see Mockito#verify(Object) */ - public static PrivateMethodVerification verifyPrivate(Object object, VerificationMode verificationMode) - throws Exception { + public static PrivateMethodVerification verifyPrivate(Object object, VerificationMode verificationMode) throws Exception { Mockito.verify(object, verificationMode); return new DefaultPrivateMethodVerification(object); } @@ -311,8 +302,7 @@ public static PrivateMethodVerification verifyPrivate(Class clazz) throws Exc * @throws Exception If something unexpected goes wrong. * @see Mockito#verify(Object) */ - public static PrivateMethodVerification verifyPrivate(Class clazz, VerificationMode verificationMode) - throws Exception { + public static PrivateMethodVerification verifyPrivate(Class clazz, VerificationMode verificationMode) throws Exception { return verifyPrivate((Object) clazz, verificationMode); } @@ -337,16 +327,7 @@ public static PrivateMethodVerification verifyPrivate(Class clazz, Verificati */ @SuppressWarnings("unchecked") public static synchronized ConstructorArgumentsVerification verifyNew(Class mock) { - if (mock == null) { - throw new IllegalArgumentException("Class to verify cannot be null"); - } - NewInvocationControl invocationControl = MockRepository.getNewInstanceControl(mock); - if (invocationControl == null) { - throw new IllegalStateException(String.format(NO_OBJECT_CREATION_ERROR_MESSAGE_TEMPLATE, Whitebox.getType( - mock).getName())); - } - invocationControl.verify(); - return new DefaultConstructorArgumentsVerfication((NewInvocationControl) invocationControl, mock); + return verifyNew(mock, times(1)); } /** @@ -369,23 +350,8 @@ public static synchronized ConstructorArgumentsVerification verifyNew(Class< * @param mode times(x), atLeastOnce() or never() */ @SuppressWarnings("unchecked") - public static ConstructorArgumentsVerification verifyNew(Class mock, VerificationMode mode) { - if (mock == null) { - throw new IllegalArgumentException("Class to verify cannot be null"); - } else if (mode == null) { - throw new IllegalArgumentException("Verify mode cannot be null"); - } - NewInvocationControl invocationControl = MockRepository.getNewInstanceControl(mock); - MockRepository.putAdditionalState("VerificationMode", POWERMOCKITO_CORE.wrapInMockitoSpecificVerificationMode(mock, mode)); - if (invocationControl == null) { - throw new IllegalStateException(String.format(NO_OBJECT_CREATION_ERROR_MESSAGE_TEMPLATE, Whitebox.getType(mock).getName())); - } - try { - invocationControl.verify(); - } finally { - MockRepository.removeAdditionalState("VerificationMode"); - } - return new DefaultConstructorArgumentsVerfication((NewInvocationControl) invocationControl, mock); + public static ConstructorArgumentsVerification verifyNew(Class mock, VerificationMode mode) { + return POWERMOCKITO_CORE.verifyNew(mock, mode); } /** diff --git a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/PowerMockitoCore.java b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/PowerMockitoCore.java index 263a47e20..b63033187 100644 --- a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/PowerMockitoCore.java +++ b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/PowerMockitoCore.java @@ -17,20 +17,26 @@ package org.powermock.api.mockito.internal; import org.mockito.Mockito; -import org.mockito.internal.progress.MockingProgress; -import org.mockito.internal.progress.ThreadSafeMockingProgress; -import org.mockito.internal.verification.MockAwareVerificationMode; import org.mockito.stubbing.Answer; import org.mockito.stubbing.Stubber; import org.mockito.verification.VerificationMode; import org.powermock.api.mockito.expectation.PowerMockitoStubber; import org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl; +import org.powermock.api.mockito.internal.invocation.MockitoNewInvocationControl; +import org.powermock.api.mockito.internal.verification.DefaultConstructorArgumentsVerification; +import org.powermock.core.MockRepository; import org.powermock.core.classloader.ClassloaderWrapper; +import org.powermock.core.spi.NewInvocationControl; +import org.powermock.reflect.Whitebox; import java.util.concurrent.Callable; +import static org.powermock.utils.Asserts.assertNotNull; + public class PowerMockitoCore { + private static final String NO_OBJECT_CREATION_ERROR_MESSAGE_TEMPLATE = "No instantiation of class %s was recorded during the test. Note that only expected object creations (e.g. those using whenNew(..)) can be verified."; + public PowerMockitoStubber doAnswer(final Answer answer) { return doAnswer(new Callable() { @Override @@ -85,16 +91,20 @@ public Stubber call() throws Exception { }); } - private PowerMockitoStubber doAnswer(final Callable callable) { - final Stubber stubber = ClassloaderWrapper.runWithClass(callable); - return new PowerMockitoStubberImpl(stubber); - } + public DefaultConstructorArgumentsVerification verifyNew(final Class mock, final VerificationMode mode) { + assertNotNull(mock, "Class to verify cannot be null"); + assertNotNull(mode, "Verify mode cannot be null"); + + MockitoNewInvocationControl invocationControl = (MockitoNewInvocationControl) MockRepository.getNewInstanceControl(mock); + + assertNotNull(invocationControl, String.format(NO_OBJECT_CREATION_ERROR_MESSAGE_TEMPLATE, Whitebox.getType(mock).getName())); - private MockingProgress getMockingProgress() { - return ThreadSafeMockingProgress.mockingProgress(); + invocationControl.verify(mode); + return new DefaultConstructorArgumentsVerification((NewInvocationControl) invocationControl, mock); } - public MockAwareVerificationMode wrapInMockitoSpecificVerificationMode(Object mock, VerificationMode mode) { - return new MockAwareVerificationMode(mock, mode, getMockingProgress().verificationListeners()); + private PowerMockitoStubber doAnswer(final Callable callable) { + final Stubber stubber = ClassloaderWrapper.runWithClass(callable); + return new PowerMockitoStubberImpl(stubber); } } diff --git a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/invocation/MockitoNewInvocationControl.java b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/invocation/MockitoNewInvocationControl.java index 893f1e023..e689f1aa1 100644 --- a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/invocation/MockitoNewInvocationControl.java +++ b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/invocation/MockitoNewInvocationControl.java @@ -19,7 +19,6 @@ import org.mockito.exceptions.base.MockitoAssertionError; import org.mockito.stubbing.OngoingStubbing; import org.mockito.verification.VerificationMode; -import org.powermock.core.MockRepository; import org.powermock.core.spi.NewInvocationControl; import org.powermock.core.spi.support.InvocationSubstitute; import org.powermock.reflect.internal.WhiteboxImpl; @@ -27,8 +26,6 @@ import java.lang.reflect.Array; import java.lang.reflect.Constructor; -import static org.mockito.Mockito.times; - public class MockitoNewInvocationControl implements NewInvocationControl> { private final InvocationSubstitute substitute; @@ -49,7 +46,7 @@ public Object invoke(Class type, Object[] args, Class[] sig) throws Except args = new Object[args.length + varArgsLength - 1]; System.arraycopy(oldArgs, 0, args, 0, oldArgs.length - 1); for (int i = oldArgs.length - 1, j=0; i < args.length; i++, j++) { - args[i] = Array.get(varArgs, j); + args[i] = Array.get(varArgs, j); } } try { @@ -75,24 +72,10 @@ public InvocationSubstitute getSubstitute() { public synchronized Object replay(Object... mocks) { return null; } - - @Override - public synchronized Object verify(Object... mocks) { - final VerificationMode verificationMode; - Object mode = MockRepository.getAdditionalState("VerificationMode"); - if (mode != null) { - if (mode instanceof VerificationMode) { - verificationMode = (VerificationMode) mode; - } else { - throw new IllegalStateException("Internal error. VerificationMode in MockRepository was not of type " - + VerificationMode.class.getName() + "."); - } - } else { - verificationMode = times(1); - } - Mockito.verify(substitute, verificationMode); - return null; - } + + public synchronized void verify(final VerificationMode verificationMode) { + Mockito.verify(substitute, verificationMode); + } @SuppressWarnings("unchecked") @Override diff --git a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/verification/DefaultConstructorArgumentsVerfication.java b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/verification/DefaultConstructorArgumentsVerification.java similarity index 91% rename from powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/verification/DefaultConstructorArgumentsVerfication.java rename to powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/verification/DefaultConstructorArgumentsVerification.java index 54bf09c37..fbc87fb80 100644 --- a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/verification/DefaultConstructorArgumentsVerfication.java +++ b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/internal/verification/DefaultConstructorArgumentsVerification.java @@ -22,13 +22,13 @@ import org.powermock.api.mockito.verification.ConstructorArgumentsVerification; import org.powermock.core.spi.NewInvocationControl; -public class DefaultConstructorArgumentsVerfication implements ConstructorArgumentsVerification { +public class DefaultConstructorArgumentsVerification implements ConstructorArgumentsVerification { private final MockitoNewInvocationControl invocationControl; private final Class type; @SuppressWarnings("unchecked") - public DefaultConstructorArgumentsVerfication(NewInvocationControl invocationControl, Class type) { + public DefaultConstructorArgumentsVerification(NewInvocationControl invocationControl, Class type) { this.type = type; this.invocationControl = (MockitoNewInvocationControl) invocationControl; } diff --git a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/invocation/MockitoMethodInvocationControl.java b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/invocation/MockitoMethodInvocationControl.java index bf42c2e8a..c934999e2 100644 --- a/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/invocation/MockitoMethodInvocationControl.java +++ b/powermock-api/powermock-api-mockito2/src/main/java/org/powermock/api/mockito/invocation/MockitoMethodInvocationControl.java @@ -132,7 +132,6 @@ public Object reset(Object... mocks) { throw new IllegalStateException("Internal error: No such thing as reset exists in Mockito."); } - @Override public Object verify(Object... mocks) { if (mocks == null || mocks.length != 1) { throw new IllegalArgumentException("Must supply one mock to the verify method."); diff --git a/powermock-core/src/main/java/org/powermock/core/spi/DefaultBehavior.java b/powermock-core/src/main/java/org/powermock/core/spi/DefaultBehavior.java index 9accb2ff2..93bca122d 100644 --- a/powermock-core/src/main/java/org/powermock/core/spi/DefaultBehavior.java +++ b/powermock-core/src/main/java/org/powermock/core/spi/DefaultBehavior.java @@ -33,17 +33,6 @@ public interface DefaultBehavior { */ Object replay(Object... mocks); - /** - * Verify the given objects or classes. May throw exception if verify is not - * needed or not supported. - * - * @param mocks - * The object(s) to verify. May be {@code null}. - * - * @return the result of the verification (may be {@code null}). - */ - Object verify(Object... mocks); - /** * Reset the given objects or classes. May throw exception if reset is not * needed or not supported. diff --git a/tests/java8/mockito-junit4/src/test/java/org/powermock/modules/junit4/largemethod/LargeMethodInInterfaceTest.java b/tests/java8/mockito-junit4/src/test/java/org/powermock/modules/junit4/largemethod/LargeMethodInInterfaceTest.java index b29f5d80d..eb1cd6f6f 100644 --- a/tests/java8/mockito-junit4/src/test/java/org/powermock/modules/junit4/largemethod/LargeMethodInInterfaceTest.java +++ b/tests/java8/mockito-junit4/src/test/java/org/powermock/modules/junit4/largemethod/LargeMethodInInterfaceTest.java @@ -44,6 +44,7 @@ public void largeMethodShouldBeAbleToBeMocked() { when(InterfaceMethodExceedingJvmLimit.init()).thenReturn("ok"); assertEquals("Mocked method should return: ok", "ok", InterfaceMethodExceedingJvmLimit.init()); verifyStatic(InterfaceMethodExceedingJvmLimit.class); + InterfaceMethodExceedingJvmLimit.init(); } @Test(expected = IllegalStateException.class) @@ -52,5 +53,6 @@ public void largeMethodShouldBeAbleToBeMockedAndThrowException() { when(InterfaceMethodExceedingJvmLimit.init()).thenThrow(new IllegalStateException()); InterfaceMethodExceedingJvmLimit.init(); verifyStatic(InterfaceMethodExceedingJvmLimit.class); + InterfaceMethodExceedingJvmLimit.init(); } } diff --git a/tests/mockito/junit4-agent/src/test/java/samples/powermockito/junit4/agent/LargeMethodTest.java b/tests/mockito/junit4-agent/src/test/java/samples/powermockito/junit4/agent/LargeMethodTest.java index c72d0eb4e..4456861f8 100644 --- a/tests/mockito/junit4-agent/src/test/java/samples/powermockito/junit4/agent/LargeMethodTest.java +++ b/tests/mockito/junit4-agent/src/test/java/samples/powermockito/junit4/agent/LargeMethodTest.java @@ -46,6 +46,7 @@ public void largeMethodShouldBeAbleToBeMocked() { when(MethodExceedingJvmLimit.init()).thenReturn("ok"); assertEquals("Mocked method should return: ok", "ok", MethodExceedingJvmLimit.init()); verifyStatic(MethodExceedingJvmLimit.class); + MethodExceedingJvmLimit.init(); } @Test(expected = IllegalStateException.class) @@ -54,5 +55,6 @@ public void largeMethodShouldBeAbleToBeMockedAndThrowException() { when(MethodExceedingJvmLimit.init()).thenThrow(new IllegalStateException()); MethodExceedingJvmLimit.init(); verifyStatic(MethodExceedingJvmLimit.class); + MethodExceedingJvmLimit.init(); } } diff --git a/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/staticmocking/MockStaticCases.java b/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/staticmocking/MockStaticCases.java index 1388f8baf..c4e0a71a6 100644 --- a/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/staticmocking/MockStaticCases.java +++ b/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/staticmocking/MockStaticCases.java @@ -79,6 +79,7 @@ public void should_not_verify_behaviour_of_another_mock_class_not_specified_in_v verifyStatic(StaticService.class); SimpleStaticService.say("Something"); + StaticService.sayHello(); } @Test diff --git a/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/whennew/VerifyNewWithoutWhenNewTest.java b/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/whennew/VerifyNewWithoutWhenNewTest.java index 33f6f277d..52bf630d1 100644 --- a/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/whennew/VerifyNewWithoutWhenNewTest.java +++ b/tests/mockito/junit4/src/test/java/samples/powermockito/junit4/whennew/VerifyNewWithoutWhenNewTest.java @@ -17,7 +17,6 @@ public class VerifyNewWithoutWhenNewTest { @Test - // TODO This should actually work in the future when issue 148 is resolved. public void verifyingNewWithoutExpectationWhenNoArgumentsThrowsISE() throws Exception { ExpectNewDemo tested = new ExpectNewDemo(); @@ -26,7 +25,7 @@ public void verifyingNewWithoutExpectationWhenNoArgumentsThrowsISE() throws Exce try { verifyNew(MyClass.class).withNoArguments(); fail("IllegalStateException expected"); - } catch (IllegalStateException e) { + } catch (IllegalArgumentException e) { assertEquals("No instantiation of class samples.newmocking.MyClass was recorded " + "during the test. Note that only expected object creations " + "(e.g. those using whenNew(..)) can be verified.", e.getMessage()); @@ -35,7 +34,6 @@ public void verifyingNewWithoutExpectationWhenNoArgumentsThrowsISE() throws Exce } @Test - // TODO This should actually work in the future when issue 148 is resolved. public void verifyingNewWithoutExpectationButWithArgumentsThrowsISE() throws Exception { ExpectNewDemo tested = new ExpectNewDemo(); assertEquals("Hello world", tested.getMessage()); @@ -43,7 +41,7 @@ public void verifyingNewWithoutExpectationButWithArgumentsThrowsISE() throws Exc try { verifyNew(MyClass.class, Mockito.atLeastOnce()).withNoArguments(); fail("IllegalStateException expected"); - } catch (IllegalStateException e) { + } catch (IllegalArgumentException e) { assertEquals("No instantiation of class samples.newmocking.MyClass was recorded " + "during the test. Note that only expected object creations " + "(e.g. those using whenNew(..)) can be verified.", e.getMessage());