下面列出了怎么用org.junit.rules.MethodRule的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected List<MethodRule> rules(Object target) {
if (SystemProperties.TEST_CODE_EXECUTING_IN_NEW_JVM.evaluate()) {
return QUICK_PERF_SPRING_RUNNER_FOR_SPECIFIC_JVM.rules(target);
}
if(quickPerfFeaturesAreDisabled) {
return springRunner.rules(target);
}
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
if (SystemProperties.TEST_CODE_EXECUTING_IN_NEW_JVM.evaluate()) {
return QUICK_PERF_SPRING_RUNNER_FOR_SPECIFIC_JVM.rules(target);
}
if(quickPerfFeaturesAreDisabled) {
return springRunner.rules(target);
}
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
if (SystemProperties.TEST_CODE_EXECUTING_IN_NEW_JVM.evaluate()) {
return QUICK_PERF_SPRING_RUNNER_FOR_SPECIFIC_JVM.rules(target);
}
if(quickPerfFeaturesAreDisabled) {
return springRunner.rules(target);
}
return super.rules(target);
}
@Override
public Statement apply(final Statement result, final FrameworkMethod method, final Object target) {
Statement lastResult = result;
for (final MethodRule rule : getRules()) {
lastResult = rule.apply(lastResult, method, target);
}
return lastResult;
}
private Statement decorateWithMethodRules(final Statement base,
final List<MethodRule> methodRules,
final FrameworkMethod method) {
Statement result = base;
for (MethodRule each : methodRules) {
result = each.apply(result, method, currentTestObject);
}
return result;
}
/**
* Find the method rules within the test class mixin.
* @param target the test case instance
* @return a list of TestRules that should be applied when executing this
* test
*/
private List<MethodRule> getMethodRules(final Object target) {
return Stream.concat(
testClass.getAnnotatedMethodValues(target, Rule.class, MethodRule.class).stream(),
testClass.getAnnotatedFieldValues(target, Rule.class, MethodRule.class).stream())
.collect(Collectors.toList());
}
@Override
protected List<MethodRule> rules(Object target) {
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
return super.rules(target);
}
@Override
protected List<MethodRule> rules(Object target) {
return super.rules(target);
}
@Override
protected List<MethodRule> rules(final Object target) {
return registerRules(super.rules(target), executor, JpaUnitContext.getInstance(getTestClass().getJavaClass()));
}
private List<MethodRule> getRules() {
return registerRules(new ArrayList<>(), executor, ctx);
}
public static List<MethodRule> registerRules(final List<MethodRule> rules, final DecoratorExecutor executor,
final ExecutionContext ctx) {
rules.add((base, method, target) -> new TestMethodStatement(ctx, executor, base, method, target));
rules.add((base, method, target) -> new TestClassStatement(ctx, executor, base, target));
return rules;
}
private Statement withMethodRules(final Statement base, final List<MethodRule> methodRules) {
FrameworkMethod method = stubFrameworkMethod();
return decorateWithMethodRules(base, methodRules, method);
}
@Override
protected List<MethodRule> rules(Object target) {
List<MethodRule> result = super.rules(target);
result.add(0, getInjector().getInstance(SudoRule.class));
return result;
}
public ExpectedTestFailureRule(MethodRule testedRule) {
this.testedRule = testedRule;
}