第 6 章 使用 JUnit 测试 Quarkus 应用程序
编译 Quarkus 入门项目后,请使用 JUnit 5 框架测试您的应用程序,以确保它按预期运行。Quarkus 项目中有两个测试依赖项生成 pom.xml 文件:
测试需要 quarkus-junit5 依赖项,因为它提供了控制 JUnit 5 测试框架的 @QuarkusTest 注解。不需要 其余 依赖项,但它提供了测试 HTTP 端点的便捷方式,它也被集成。它会自动设置正确的 URL,因此不需要配置。
这些测试使用 RESTassured 框架,但如果您喜欢,您可以使用不同的库。
先决条件
- 您已编译了 Quarkus Getting Started 项目。
流程
打开生成的
pom.xml文件并查看内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,:
-
设置了
java.util.logging.manager系统属性,以确保应用程序使用正确的日志管理器进行测试。 -
maven.home属性指向settings.xml文件的位置,您可以在其中存储您要应用到项目的自定义 Maven 配置。
-
设置了
编辑
src/test/java/org/acme/quickstart/GreetingResourceTest.java文件以匹配以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意通过使用
QuarkusTest运行程序,您指示 JUnit 在开始测试前启动应用程序。要从 Maven 运行这些测试,请输入以下命令:
./mvnw test
./mvnw testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您还可以从 IDE 运行测试。如果您这样做,请确保首先停止应用程序。
默认情况下,测试在端口
8081上运行,以便它们不会与正在运行的应用程序冲突。在 Quarkus 中,ChtraceAssured依赖项配置为使用此端口。如果要使用其他客户端,请使用@TestHTTPResource注释将经过测试应用的 URL 直接注入到Test类的字段中。此字段可以是字符串、URL或URI类型。您还可以在此注解中提供测试路径。例如,要测试映射到/myservlet的 servlet,请在测试中添加以下几行:@TestHTTPResource("/myservlet") URL testUrl;@TestHTTPResource("/myservlet") URL testUrl;Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如有必要,在
quarkus.http.test-port配置属性中指定测试端口。
Quarkus 还创建一个名为 test.url 的系统属性,该属性被设置为基本测试 URL,用于您无法使用注入的情况。