Open GoogleCodeExporter opened 9 years ago
The following test case can not pass with PowerMock 1.4.11 + Mockito 1.8.5 or PowerMock 1.5.4 + Mockito 1.9.5. ClassCastException occurs. @Test public void test_mock_object_with_multiple_interfaces() throws Exception { Runnable runnable = PowerMockito.mock(Runnable.class, Mockito.withSettings().extraInterfaces(Iterator.class)); @SuppressWarnings("unchecked") Iterator<Object> iterator = (Iterator<Object>) runnable; PowerMockito.when(iterator.next()).thenReturn("test1", "test2"); PowerMockito.doThrow(new IllegalStateException()).when(runnable).run(); Assert.assertEquals("test1", iterator.next()); Assert.assertEquals("test2", iterator.next()); try { runnable.run(); Assert.fail("Exception expected."); } catch (IllegalStateException e) { } } If using Mockito API as below with Mockito 1.8.5, it can pass, but with Mockito 1.9.5 it fails with MethodNotFoundException. It seems a bug of Mockito. @Test public void test_mock_object_with_multiple_interfaces() throws Exception { Runnable runnable = Mockito.mock(Runnable.class, Mockito.withSettings().extraInterfaces(Iterator.class)); @SuppressWarnings("unchecked") Iterator<Object> iterator = (Iterator<Object>) runnable; Mockito.when(iterator.next()).thenReturn("test1", "test2"); Mockito.doThrow(new IllegalStateException()).when(runnable).run(); Assert.assertEquals("test1", iterator.next()); Assert.assertEquals("test2", iterator.next()); try { runnable.run(); Assert.fail("Exception expected."); } catch (IllegalStateException e) { } }
Original issue reported on code.google.com by gavinyan...@gmail.com on 21 Mar 2014 at 2:06
gavinyan...@gmail.com
Does this test pass with vanilla Mockito?
Original comment by szcze...@gmail.com on 8 Oct 2014 at 7:17
szcze...@gmail.com
Original issue reported on code.google.com by
gavinyan...@gmail.com
on 21 Mar 2014 at 2:06