как насчет этого?
public class MyClassTest {
MyClass myClass = new MyClass();
Dao dao = Mockito.mock(Dao.class);
public void testMyMethod() {
Field field = myClass.getClass().getDeclaredField("dao");
field.setAccessible(true);
field.set(myClass, dao);
//Do the test...
}
}
EDIT: Как упоминалось в комментариях, это предполагает, что вы не меняете имя поля dao
. Тогда может быть хорошей идеей получить все поля Field[] fields = myClass.getClass().getDeclaredFields();
и перебрать их, получив поле (ы) типа Dao. Затем, как описано выше. Таким образом, ваш тест больше не зависит от имени вашего поля.