Я пытаюсь написать Unit-тест для класса, который имеет несколько полей, отмеченных @Autowired. Учитывая тот факт, что Spring автоматически разрешает конкретные реализации этих полей, мне сложно определить, как подключить мои объекты Mock (созданные через EasyMock) в качестве зависимостей во время тестового запуска. Использование @Autowired в классе означает отсутствие сеттеров в этом классе. Есть ли способ, чтобы я мог подключать свои макетные объекты, не создавая дополнительных разделителей в классе?Узел тестирования класса с автоподзаводом с использованием Junit и EasyMock?
Вот пример того, что я пытаюсь сделать:
public class SomeClassUnderTest implements SomeOtherClass{
@Autowired
private SomeType someType;
@Autowired
private SomeOtherType someOtherType;
@Override
public SomeReturnType someMethodIWouldLikeToTest(){
//Uses someType and someOtherType and returns SomeReturnType
}
}
Вот как я крафта мой класс Test, прежде чем я попал в стену:
public class MyTestClassForSomeClassUnderTest{
private SomeType someType;
private SomeOtherType someOtherType;
@Before
public void testSetUp(){
SomeClassUnderTest someClassToTest = new SomeClassUnderTest();
someType = EasyMock.createMock(SomeType.class);
someOtherType = EasyMock.createMock(SomeOtherType.class);
//How to set dependencies????
}
@Test
public void TestSomeMethodIWouldLikeToTest(){
//??????
}
}
Это будет здорово, чтобы получить нажмите в правильном направлении.
Благодаря
Спасибо за отзыв. –
http://stackoverflow.com/questions/16426323/injecting-into-autowired-variable-during-testing – Dan
EasyMock поддерживает с версии 3.2 аналогичные аннотации к Mockito для макетирования. См. Мой ответ. – krm