code: public static void proxy(Class<?> declaringClass, String methodName, InvocationHandler invocationHandler) {
  		assertInvocationHandlerNotNull(invocationHandler);
  		if (declaringClass == null) {
  			throw new IllegalArgumentException("declaringClass cannot be null");
  		}
  		if (methodName == null || methodName.length() == 0) {
  			throw new IllegalArgumentException("methodName cannot be empty");
  		}
  		Method[] methods = Whitebox.getMethods(declaringClass, methodName);
  		if (methods.length == 0) {
  			throw new MethodNotFoundException(String.format("Couldn't find a method with name %s in the class hierarchy of %s", methodName,
  					declaringClass.getName()));
  		} else if (methods.length > 1) {
  			throw new TooManyMethodsFoundException(String.format("Found %d methods with name %s in the class hierarchy of %s.", methods.length,
  					methodName, declaringClass.getName()));
  		}
  
  		MockRepository.putMethodProxy(methods[0], invocationHandler);
  	}
docs: Add a proxy for a method declared in class {@code declaringClass}.
  Each call to the method will be routed to the invocationHandler instead.