Я хочу проверить услугу А, который имеет метод methodA1, А относится к услуге В, который имеет метод methodB1,весной тест с обслуживанием разница фасоли
В methodB1 называется в methodA1,
@Service
class A{
@Autowired
B b;
void methodA1{
....
b.methodB1();
.....
}
}
@Service
class B{
void methodB1{
....
}
}
Теперь я хочу протестировать методA1, но методB1 нужно переопределить, поэтому я создаю новый класс BMock;
@Service("bMock")
class BMock execute B{
@Override
void methodB1{
....
}
}
Тестовый пример, как это:
class testClass extends springTest{
@Autowired
A a;
@Autowired
@Qualifier("bMock")
B b;
@Test
public void testMethodA1(){
a.methodA1();
}
}
собственно, methodA1 всегда называют methodB1 в классе B, я хочу его называть BMock в тесте, как это сделать?
Почему бы не использовать фреймворки, такие как easymock/powermock/mockito и т. Д., Чтобы издеваться? – SMA
'@Qualifier (« bMock »)' в этом случае не собирается делать (AFAIK). Вы интерфейсы. Вместо того, чтобы конкретизировать 'B b'use' AnInterfaceThatBImplements b' – Shahzeb
@Shahzeb, значит, мне нужно создать интерфейс Ib, интерфейс класса B и BMock Ib? если это так, bMock можно вызвать в тестовом случае? – Mike