Я частично высмеиваю сервисный уровень, чтобы получить желаемый результат для одного из методов, и я хочу оставить остальные методы сервисного уровня нетронутыми, то есть я хочу, чтобы реальные методы вызывались. Моя дилемма заключается в том, что мне нужно установить DAO для смоделированной службы из реальной службы, потому что при вызове немодированных методов дао равно null. это работает, но так ли это правильно?
public class Service
{
@Autowired
Dao dao;
....
public int getSomething(){
return 2;
}
}
@Category(IntegrationTest.class)
@RunWith(SpringRunner.class)
public class Test{
@Autowired
Service realService;
@Test
public void testMethod(){
Service mockedService = Mockito.spy(Service.class)
mockedservice.setDAO(realService.getDAO());// this is the
//part i am not sure of
Mockito.when(mockedservice.getSomething()).thenReturn(43);
Assert.assertEquals(43, mockedService.getSomething());
}