Polish "Allow custom snippets directory via JUnit 5"

See gh-633
This commit is contained in:
Andy Wilkinson
2019-08-30 11:37:22 +01:00
parent 43ec46fcc1
commit bc66fe5643
2 changed files with 25 additions and 13 deletions

View File

@@ -397,20 +397,20 @@ based on your project's build tool:
|===
If you are using JUnit 5.1 or later the default can be overridden by providing
an output directory when registering the `RestDocumentationExtension` instance:
If you are using JUnit 5.1, you can override the default by registering the extension
as a field in your test class and providing an output directory when creating it. The
following example shows how to do so:
[source,java,indent=0]
----
public class JUnit5ExampleTests {
@RegisterExtension
static final RestDocumentationExtension restDocumentation =
new RestDocumentationExtension ("custom");
@RegisterExtension
final RestDocumentationExtension restDocumentation = new RestDocumentationExtension ("custom");
}
----
Next, you must provide a `@BeforeEach` method to configure MockMvc, WebTestClient, or
REST Assured. The following listings show how to do so:

View File

@@ -34,11 +34,21 @@ public class RestDocumentationExtension implements BeforeEachCallback, AfterEach
private final String outputDirectory;
public RestDocumentationExtension () {
/**
* Creates a new {@code RestDocumentationExtension} that will use the default output
* directory.
*/
public RestDocumentationExtension() {
this(null);
}
public RestDocumentationExtension (String outputDirectory) {
/**
* Creates a new {@code RestDocumentationExtension} that will use the given
* {@code outputDirectory}.
* @param outputDirectory snippet output directory
* @since 2.0.4
*/
public RestDocumentationExtension(String outputDirectory) {
this.outputDirectory = outputDirectory;
}
@@ -75,11 +85,13 @@ public class RestDocumentationExtension implements BeforeEachCallback, AfterEach
this::createManualRestDocumentation, ManualRestDocumentation.class);
}
private ManualRestDocumentation createManualRestDocumentation (Class<ManualRestDocumentation> key) {
if (outputDirectory != null) {
return new ManualRestDocumentation(outputDirectory);
} else {
private ManualRestDocumentation createManualRestDocumentation(Class<ManualRestDocumentation> key) {
if (this.outputDirectory != null) {
return new ManualRestDocumentation(this.outputDirectory);
}
else {
return new ManualRestDocumentation();
}
}
}