KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I woud like to write a JUnit test to verify that the code below uses a BufferedInputStream: public static final FilterFactory BZIP2_FACTORY = new FilterFactory() { public InputStream makeFilter(InputStream in) { // a lot of other code removed for clarity BufferedInputStream buffer = new BufferedInputStream(in); return new CBZip2InputStream(buffer); } }; (FilterFactory is an interface.) My test thus far looks like this: @Test public void testBZIP2_FactoryUsesBufferedInputStream() throws Throwable { InputStream in = mock(InputStream.class); BufferedInputStream buffer = mock(BufferedInputStream.class); CBZip2InputStream expected = mock(CBZip2InputStream.class); PowerMockito.spy(InputHelper.BZIP2_FACTORY); // This line fails whenNew(BufferedInputStream.class).withArguments(in).thenReturn(buffer); whenNew(CBZip2InputStream.class).withArguments(buffer).thenReturn(expected); InputStream observed = InputHelper.BZIP2_FACTORY.makeFilter(in); assertEquals(expected, observed); } The call to PowerMockito.spy raises an exception with this message: org.mockito.exceptions.base.MockitoException: Mockito cannot mock this class: class edu.gvsu.cis.kurmasz.io.InputHelper$1 Mockito can only mock visible & non-final classes. What should I be using instead of PowerMocktio.spy to set up the calls to whenNew?
Tags (comma-separated)
Save Edits
Cancel