CDI を使用しているときに、テスト中にどのモック実装を使用する必要があるかを指定する方法を知りたいです。
@Alternative でモック実装をマークできることはわかっていますが、beans.xml で定義する必要があります。複数のモックが必要です(複数のオブジェクト用)。OrderService と EmailService があるとします。EmailService にメールを送信させたくない受け入れテストを書いています。次に、システム テストであるもう 1 つのテスト セット - メールを送信したいが、実際の順序は作成しないでください。
理想的な解決策は、次のように、テスト メソッドの呼び出しごとに Alternatives を指定することです。
@BeforeMethod
public void before(){
// in this test suite we're using mock email service
addAlternative(MockEmailService.class);
}
@Test
public void testMyStuff(){
issueAnOrder(); // and verify that it worked. no emails sent!
}
出来ますか?