Remove support for JUnit 4

Closes gh-958
This commit is contained in:
Andy Wilkinson
2025-06-03 17:35:46 +01:00
parent c7bde714d6
commit b82451e527
32 changed files with 244 additions and 554 deletions

View File

@@ -1,77 +0,0 @@
/*
* Copyright 2014-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.restdocs;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
/**
* A JUnit {@link TestRule} used to automatically manage the
* {@link RestDocumentationContext}.
*
* @author Andy Wilkinson
* @since 1.1.0
*/
public class JUnitRestDocumentation implements RestDocumentationContextProvider, TestRule {
private final ManualRestDocumentation delegate;
/**
* Creates a new {@code JUnitRestDocumentation} instance that will generate snippets
* to <gradle/maven build path>/generated-snippet.
*/
public JUnitRestDocumentation() {
this.delegate = new ManualRestDocumentation();
}
/**
* Creates a new {@code JUnitRestDocumentation} instance that will generate snippets
* to the given {@code outputDirectory}.
* @param outputDirectory the output directory
*/
public JUnitRestDocumentation(String outputDirectory) {
this.delegate = new ManualRestDocumentation(outputDirectory);
}
@Override
public Statement apply(final Statement base, final Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
Class<?> testClass = description.getTestClass();
String methodName = description.getMethodName();
JUnitRestDocumentation.this.delegate.beforeTest(testClass, methodName);
try {
base.evaluate();
}
finally {
JUnitRestDocumentation.this.delegate.afterTest();
}
}
};
}
@Override
public RestDocumentationContext beforeOperation() {
return this.delegate.beforeOperation();
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2014-2019 the original author or authors.
* Copyright 2014-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,15 @@ package org.springframework.restdocs;
import java.io.File;
import org.junit.jupiter.api.extension.Extension;
/**
* {@code ManualRestDocumentation} is used to manually manage the
* {@link RestDocumentationContext}. Primarly intended for use with TestNG, but suitable
* for use in any environment where manual management of the context is required.
* <p>
* Users of JUnit should use {@link JUnitRestDocumentation} and take advantage of its
* Rule-based support for automatic management of the context.
* Users of JUnit should use {@link RestDocumentationExtension} and take advantage of its
* {@link Extension}-based support for automatic management of the context.
*
* @author Andy Wilkinson
* @since 1.1.0