It should be something like
@RunWith(SpringJUnit4ClassRunner.class)
public class aTest () {
@Mock
private B b;
@Mock
private C c;
@Autowired
@InjectMocks
private A a;
}
If you want D to be Autowired dont need to do anything in your Test class. Your Autowired A should have correct instance of D.
Also i think you need to use SpringJUnit4ClassRunner for Autowiring to work, with contextConfiguration set correctly.
Because you are not using MockitoJunitRunner you need to initialize your mocks yourself using
MockitoAnnotations.initMocks(java.lang.Object testClass)