第6章 CDI Bean のモック化
Quarkus により、特定のテスト用に一部の CDI Bean をモック化できます。
以下の方法の 1 つを使用して、オブジェクトをモック化できます。
-
src/test/javaディレクトリーのクラスでモック化する Bean を上書きし、@Alternativeおよび@Priority(1)のアノテーションを Bean に配置します。 -
io.quarkus.test.Mockステレオタイプアノテーションを使用します。@Mockアノテーションには@Alternative、@Priority(1)、および@Dependentのアノテーションが含まれます。
以下の手順では、@Alternative アノテーションを使用して外部サービスをモック化する方法を説明します。
手順
以下の例に示すような
src/main/javaディレクトリーにExternalServiceを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/main/javaディレクトリーでExternalServiceを使用するUsesExternalServiceクラスを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例に示すような
src/test/javaディレクトリーにテストを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow @Alternativeアノテーションを使用するsrc/test/javaにMockExternalServiceを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ExternalServiceが使用されている場所に、MockExternalServiceが注入されます。この例では、MockExternalServiceは、UsesExternalServiceで使用されます。
注記@Alternative、@Priority(1)および@Dependentのアノテーションの代わりに@Mockアノテーションを使用できます。以下の例は、
@Mockアノテーションを使用するMockExternalServiceクラスを作成する方法を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow テストで、アサートされた文字列を
"external"から"mock"に変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow