Je veux tester en classe d'isolement A.
Vous devez absolument simuler B, plutôt que d'instancier et d'injecter une instance de B. Le but est de tester A, que B fonctionne ou non, et vous ne devez donc pas laisser un B potentiellement cassé interférer avec le test de A.
Cela dit, je recommande vivement Mockito . En ce qui concerne les frameworks de simulacre, il est extrêmement facile à utiliser. Vous pouvez écrire quelque chose comme ce qui suit :
@Test
public void testA() {
A a = new A();
B b = Mockito.mock(B.class); // create a mock of B
Mockito.when(b.getMeaningOfLife()).thenReturn(42); // define mocked behavior of b
ReflectionTestUtils.setField(a, "b", b); // inject b into the B attribute of A
a.method();
// call whatever asserts you need here
}