0
依存性注入にHK2を使用しており、JUnit-TestのコンテキストでMockito-mockでシングルトンオブジェクトを置き換えたいとします。 JUnitのテストスタブは以下の通りであるMockitoとHK2の使い方は?
import javax.inject.Inject;
import org.jvnet.hk2.annotations.Service;
@Service
public class A {
@Inject
private B b;
public String test() {
return b.toString();
}
}
@Service
public class B {
public String toString()
{
return "B";
}
}
に対し:
import static org.junit.Assert.*;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.jvnet.hk2.testing.junit.HK2Runner;
import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class MockTest extends HK2Runner {
private B bMock = Mockito.mock(B.class);
@Inject
private A a;
@Test
public void test() {
Mockito.when(bMock.toString()).thenReturn("Mock");
assertEquals("Mocking worked", "Mock", a.test());
}
}
IはAにはなく、注入されるB用のモックしたい次のように
最も簡単な設定は次のようになり実際のオブジェクト。どのようにしてHK2をグローバルに設定できますか?Bのすべてのインスタンスについて、モックが使用されるようにしますか? 私はコンストラクタ経由の注入を使用して、BにAをローカルに注入できることをすでに知っています。