Java: Comment puis-je simuler une méthode d'un champ lorsque ce champ n'est pas exposé?

J'utilise la version 6 de Java, JUnit 4.8.1, et l'écriture d'une application console. Ma demande a un membre de domaine qui n'est pas exposé ...

public class MyApp { 
    ...
    private OpportunitiesService m_oppsSvc;

    private void initServices() { 
        
        m_oppsSvc = new OpportunitiesServiceImpl(…);
    }
    ...
}

Je veux de se moquer d'un comportement, tels que, chaque fois qu'une méthode de mon service est appelée (par exemple m_oppsSvc.getResults()), le même résultat est toujours retourné. Comment dois-je faire? Il n'y a pas de méthode de définition du champ. Je suis actuellement en train de travailler avec Mockito 1.8.4. Est-il possible de faire cela avec Mockito ou certains autres se moquer de cadre?

Pouvez-vous ne pas créer une méthode de définition?
Double Possible de Comment avez-vous test de l'unité méthodes privées?
Qu'essayez-vous de test? est getResults() public? A-t-elle un champ privé associé avec elle, ou est-il calculé au moment de l'exécution? Selon les réponses, vous pouvez être en mesure d'utiliser un "espion" ou moqueur pourrait pas avoir quelque chose à faire avec elle et vous pouvez utiliser quelque chose comme org.springframework.test.util.ReflectionTestUtils simplement de définir le domaine privé de la valeur que vous souhaitez.

OriginalL'auteur Dave | 2012-07-20