SpringテストをJUnit 5に移行しても正常に動作します。しかし、私はどのように移行するのか分からない@Rule public JUnitRestDocumentation restDocumentation = ...
。 ヒントはありがたいです。Spring RESTドキュメント:JUnit 5へのルールの移行方法
0
A
答えて
1
春RestDocs 2新しいクラスが導入されていますJUnitの5用RestDocumentationExtension
あなたは完全な例がhttps://github.com/spring-projects/spring-restdocs/blob/v2.0.0.RELEASE/samples/junit5/src/test/java/com/example/junit5/SampleJUnit5ApplicationTests.java
Rule
@ExtendWith(RestDocumentationExtension.class) public class JUnit5ExampleTests {
- の代わりにそれを使用することができます文書番号https://github.com/spring-projects/spring-restdocs/blob/master/docs/src/docs/asciidoc/getting-started.adoc#setting-up-your-junit-5-tests
Spring RestDocs 2にはSpring 5とJDK 8が必要です
2
問題が正式に解決されるまで、私はJUnit 5エクステンション(下記)で動作させることができました。その拡張子を使用して
は、私はthusly私のテストクラスを変更:ここで
@ExtendWith(RestDocsExtension.class)
と
@BeforeEach
void setUp(WebApplicationContext wac, ManualRestDocumentation restDocumentation) throws Exception {
は拡張機能です。
import org.junit.jupiter.api.extension.AfterEachCallback;
import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.ContainerExtensionContext;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.api.extension.ParameterResolutionException;
import org.junit.jupiter.api.extension.ParameterResolver;
import org.junit.jupiter.api.extension.TestExtensionContext;
import org.springframework.restdocs.ManualRestDocumentation;
import java.lang.reflect.Method;
import java.util.Optional;
public class RestDocsExtension implements BeforeAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
private static final String REST_DOC_STORE_KEY = "restDocumentation";
private ManualRestDocumentation restDocumentation;
@Override
public void beforeAll(ContainerExtensionContext context) throws Exception {
if (restDocumentation == null) {
restDocumentation = new ManualRestDocumentation("target/generated-snippets");
getStore(context).put(REST_DOC_STORE_KEY, restDocumentation);
}
}
@Override
public void beforeEach(TestExtensionContext context) throws Exception {
Optional<Class<?>> testClass = context.getTestClass();
Optional<Method> methodNameOpt = context.getTestMethod();
if (testClass.isPresent() && methodNameOpt.isPresent()) {
getDoc(context).beforeTest(testClass.get().getClass(), methodNameOpt.get().getName());
} else {
throw new Exception("TestExtensionContext with no class or method. wat");
}
}
@Override
public void afterEach(TestExtensionContext context) throws Exception {
getDoc(context).afterTest();
}
@Override
public boolean supports(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
return parameterContext.getParameter().getType() == ManualRestDocumentation.class;
}
@Override
public Object resolve(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
return getDoc(extensionContext);
}
private ManualRestDocumentation getDoc(ExtensionContext context) {
return (ManualRestDocumentation) getStore(context).get(REST_DOC_STORE_KEY);
}
private ExtensionContext.Store getStore(ExtensionContext context) {
return context.getStore(ExtensionContext.Namespace.DEFAULT);
}
}
関連する問題
- 1. JUnit 5とSpring Framework 4.3.x
- 2. Spring Restドキュメントの属性
- 3. 移行:JUnitの4へのJUnit 3:テストスイートは
- 4. Spring 2.5からSpring 3.0.5への移行
- 5. junitの実行方法AbstractTransactionalJUnit4SpringContextTestsトランザクション内のルールはありますか?
- 6. 3からHibernate 5への移行
- 7. umbraco 4からumbraco 5への移行
- 8. IllegalStateException:jboss 4からjboss 5への移行
- 9. Spring RESTのドキュメント - WS02の統合
- 10. KarafのSpring-DM&Spring 3からBlueprint&Spring 4への移行
- 11. グラデーション付きintellijのJUnit 4からJUnit 5へのアップグレード
- 12. Spring RESTドキュメントでロケールを切り替える方法は?
- 13. Spring Integration 3から4への移行
- 14. Spring BasicProcessingスプリングセキュリティへのフィルタ移行4
- 15. Springブートテスト、1.3から1.5への移行
- 16. web.xmlからSpringブートへの移行
- 17. SpringXDからSpringクラウドデータフローへの移行
- 18. Spring RESTのドキュメントがMustacheExceptionをスローする
- 19. Spring RESTでドキュメントの応答ステータス
- 20. Kibana 4からKibana 5へのダッシュボードの移行5
- 21. spring-batch-adminからspringクラウドへの移行
- 22. JUnit @IgnoreのSonarqubeルール
- 23. EC2 SpringブートベースのRESTエンドポイントへのアクセスを制限する方法
- 24. JAPEルールの実行方法
- 25. Spring AMQPからSpring Cloud Streamへの移行 - 既存のキュー
- 26. Spring 3.1.2からSpring 4への移行の問題
- 27. Android POSTからDjango Rest Framework JsonまたはAPIへの移行方法
- 28. Spring-Restでの行動JUnitテストの作成のポイントは何ですか?
- 29. md5からsha256への移行方法
- 30. アクティビティへの移行を防ぐ方法
非常に良いブログエントリがあります。http://www.codeaffine.com/2016/04/06/replace-rules-in-junit5/これはドキュメントを要求しています:) – cheffe
JUnit Jupiter(JUnit 5)に正常に移行したことは素晴らしいことです! Spring REST DocsでのJUnit 4サポートの置き換えに関して、私はここでそれに関する問題を作成しました:https://github.com/spring-projects/spring-restdocs/issues/296 –