### Question:
Reflection { public static Object invoke( Method method, Object... args ) { try { return method.invoke( null, args ); } catch ( Exception ex ) { throw reflectionException( ex ); } } private  Reflection(); static ValueConverter<V> findConverter( Class<V> clazz ); static T instantiate( Constructor<T> constructor, Object... args ); static Object invoke( Method method, Object... args ); @SuppressWarnings( "unchecked" ) static V convertWith( ValueConverter<V> converter, String raw );  }### Answer:
@Test public void invokingStaticMethodQuietlyWrapsIllegalAccessException() throws Exception { Method method = Problematic.class.getDeclaredMethod( "boo" ); thrown.expect( ReflectionException.class ); thrown.expectMessage( IllegalAccessException.class.getName() ); invoke( method ); }
@Test public void invokingStaticMethodQuietlyWrapsIllegalArgumentException() throws Exception { Method method = Problematic.class.getDeclaredMethod( "mute" ); thrown.expect( ReflectionException.class ); thrown.expectMessage( IllegalArgumentException.class.getName() ); invoke( method, new Object() ); }