@InjectMocks внедрить @MockBean с помощью конструктора и установщика не работает должным образомJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 @InjectMocks внедрить @MockBean с помощью конструктора и установщика не работает должным образом

Сообщение Anonymous »

Я много раз пытался отменить @RunWith(SpringJUnit4ClassRunner.class)
Я пытался создать тестовый пример для класса с геттером и внедрением конструктора. Когда я использую @MockBean для внедрения установщика, @Mock для внедрения в конструктор, а также использую @RunWith(SpringJUnit4ClassRunner.class) и MockitoAnnotations.initMocks(this); внедрение bean-компонента .
Если я прокомментирую MockitoAnnotations.initMocks(this); внедрение конструктора не работает.
Теперь все bean-компоненты внедряются идеально, но @Mock beans(Contructor Injected) bean-компоненты, издевающиеся над mthods, не работают. работает правильно при вызове.

Код: Выделить всё

@Component
Class A{
}

@Component
Class B {
}

@Component
Class c{
}

@Component
Class D{
@Atowired
A a;

B b;
C c;
@Autowired
public D(B b,C c){
b=b;
c=c;
}
}
Мой тестовый класс

Код: Выделить всё

@RunWith(SpringJUnit4ClassRunner.class)
Class TestClass{
@MockBean
A mockA
@Mock
B mockB
@Mock
C mockC
@InjectMocks
D mockD

@Before
public void setUp() {
MockitoAnnotations.initMocks(this);//Without this Constructor injection not working
when(mockA.getValue()).then("StringValA");
when(mockB.getValue()).then("StringValB");
when(mockC.getValue()).then("StringValC");

}
@Test
public void testMethod(){
mock.getAllValues();// It will call all injested bean method we are mocked in @before
}
}
Инъекции работают правильно, проблема связана с имитируемыми методами bean-компонентов, которые я использую @Mock не работает должным образом, это означает, чтоockB.getValue()

code> иockC.getValue() возвращают значение null, но методockA.getValue() возвращается правильно при тестовом запуске.

Подробнее здесь: https://stackoverflow.com/questions/587 ... g-properly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»