第 6 章 将拦截器应用到测试
Quarkus 测试是完整的 CDI Bean,因此您可以像通常一样应用 CDI 拦截器。例如,如果您希望测试方法在事务的上下文中运行,您可以将 @Transactional 注释应用到该方法。您还可以创建自己的测试 stereotypes。
流程
将
quarkus-narayana-jta依赖项添加到pom.xml文件中:<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-narayana-jta</artifactId> </dependency>确保
TransactionalQuarkusTest.java包括以下导入语句:package org.acme.quickstart; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.enterprise.inject.Stereotype; import javax.transaction.Transactional; import io.quarkus.test.junit.QuarkusTest;创建
@TransactionalQuarkusTest注释:@QuarkusTest @Stereotype @Transactional @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface TransactionalQuarkusTest { }将此注解应用到一个测试类,它的行为如同您应用了
@QuarkusTest和@Transactional注解一样:@TransactionalQuarkusTest public class TestStereotypeTestCase { @Inject UserTransaction userTransaction; @Test public void testUserTransaction() throws Exception { Assertions.assertEquals(Status.STATUS_ACTIVE, userTransaction.getStatus()); } }这是一个简单的测试,在不使用 HTTP 的情况下直接评估问候服务。