Umwelt:Wie Mocks in Frühling Dienst injizieren
Spring MVC 4
Junit
Mockito
Code:
Frühlings-Service im Test:
@Service("abhishekService")
public class AbhishekServiceImpl implements AbhisheskService {
@Autowired
private DaoOne daoOne;
@Autowired
private DaoTwo daoTwo;
@Autowired
private DaoThree daoThree;
@Autowired
private DaoFour daoThree;
}
Junit Test:
public class AbhishekServiceImplTest {
@Mock
private DaoOne daoOne;
@Mock
private DaoTwo daoTwo;
@Mock
private DaoThree daoThree;
@Mock
private UserDao userDao;
private AbhisheskService abhisheskService;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
abhisheskService = new AbhishekServiceImpl();
}
}
Ausgabe:
1) Wie man in Codeausschnitt gezeigt, verwendet die Klasse im Test vier Abhängigkeiten.
2) Wie in Code-Schnipsel zwei gezeigt, in JUnit-Testfall-Klasse, alle 4 Abhängigkeiten verspottet verwenden @Mock
3) Meine Frage ist: wie diese vier verspottet Objekte in Testklasse injiziert werden sollte?
4) Meine Klasse im Test nicht Konstruktor/Setter Injektion sondern Feldeinkopplung haben mit @Autowired.
5) Ich möchte nicht @InjectMocks
Anmerkung verwenden, wegen seiner gefährlichen Verhaltens as mentioned here
Can jemand bitte hierüber leiten?
Konnte der Service nicht umgestaltet werden, um Konstruktoreinspritzung zu haben? Es ist eine einfache Sache zu tun. – Magnilex
Der Artikel, den Sie selbst verlinkt haben, enthält bereits Hinweise, wie Sie das Problem vermeiden können - was brauchen Sie noch? – kryger