Paramètre de requête nommée test avec mockito

Je veux écrire un test Unitaire pour mon dao, mais j'ai un problème. Voici la méthode que je veux tester:

 public boolean boo(final String param) {
            final Query query = this.entityManager.createNamedQuery("queryName");
            query.setParameter(1, param);
            boolean isExists = false;
            if(query.getResultList().size() != 0) {
                isExists = true;
            }
            return isExists;
        }

Le problème avec cette méthode est :

query.setParameter(1, param);

Quand j'écris quelque chose comme :

   @Test
    public void test() {        
        when(entityManager.createNamedQuery(queryName)).thenReturn(query);
        when(query.getResultList()).thenReturn(new ArrayList());
        //when(query.setParameter(1,project.getName())).thenCallRealMethod();
        projectDao.boo(name);

    }

La requête et de l'entityManager sont moqués.
J'ai NPE, et ce n'est pas une surprise, et je ne peux pas appeler la méthode, car la requête est et de l'interface.
Si quelqu'un pourrait me dire la meilleure façon de définir les paramètres dans NamedQueries pendant le test?

Qu'essayez-vous de test? J'ai pas vu de faire valoir. Et où voulez-vous obtenir votre requête. si la requête est moqué de vous ne devriez pas obtenir un NPE. Si vous voulez tester la requête réelle de la création d'un test d'intégration où vous avez généralement à l'installation de votre DAO est complètement sans moqueries.

OriginalL'auteur Oleksandr | 2011-06-22