第5章 テストへのインターセプターの適用
Quarkus テストは完全な CDI Bean であるため、通常通りに CDI インターセプターを適用できます。たとえば、トランザクションのコンテキスト内であるテスト方法を実行する場合は、@Transactional アノテーションをその方法に適用できます。また、独自のテストステレオタイプを作成することもできます。
手順
quarkus-narayana-jta依存関係をpom.xmlファイルに追加します。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-narayana-jta</artifactId> </dependency>以下の import ステートメントが
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 を使用せずに greeting サービスを直接評価する簡単なテストです。