第7章 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
- MockExternalServiceは、- ExternalServiceが使用されている場所に注入されます。この例では、- 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