@Override
 protected Statement methodInvoker(FrameworkMethod method, Object test) {
   Statement s = new InvokeMethod(method, test);
   for (MethodRule rule : getRules(test)) {
     s = rule.apply(s, method, test);
   }
   return s;
 }
 private Statement withRules(
     final FrameworkMethod method, final Object target, final Statement statement) {
   Statement result = statement;
   for (final MethodRule each : rules(target)) {
     result = each.apply(result, method, target);
   }
   return result;
 }