Окружающая среда:Как придать Mocks в Спринг службы
Spring MVC 4
Junit
Mockito
Код:
Спринг службы при испытании:
@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();
}
}
Издание:
1) Как показано на фрагменте кода один класс тестируемой использует четыре зависимостей.
2) Как показано на фрагменте кода два, в JUnit тест случае класса, все 4 зависимостей издевались с помощью @Mock
3) Мой вопрос: как эти четыре издевались объекты должны быть введены в тестовом классе?
4) Мой класс испытуемый не имеет конструктора/инъекцию сеттера, но инъекции поля с использованием @Autowired.
5) Я не хочу использовать @InjectMocks
аннотацию из-за его опасного поведения as mentioned here
Может кто-нибудь, пожалуйста, руководство по этому поводу?
Не могли бы вы реорганизовать службу, чтобы иметь инъекцию конструктора? Это простая вещь. – Magnilex
В статье, в которой вы были связаны, уже содержится совет о том, как избежать проблемы - что еще вам нужно? – kryger