Impossible d'effectuer un test unitaire avec une fonction qui a l'instruction createCriteria ()

StackOverflow https://stackoverflow.com/questions/5386479

Question

Je veux écrire un test unitaire (par JUnit) pour tester la valeur de cette fonction dans Groovy:

    String getPeopleNamesById(int[] peopleIds) {
        List<String> names = People.createCriteria().list{
            projections { property("name") }
            'in' ("id", peopleIds)
        }
        return names ? names.join(", ") : "";
    }

Mais le test unitaire échoue toujours lors de la lecture de cette instruction: List names= People.createCriteria (). list {...} groovy.lang.MissingMethodException: Aucune signature de la méthode: People.createCriteria () est applicable pour les types d'argument: () valeurs: []. Je suppose que c'est à cause de l'appel à des fonctions qui exécutent certaines connexions et requêtes DB? Pouvez-vous m'aider à écrire ce test?Merci beaucoup!

Était-ce utile?

La solution

Les requêtes de critères ne sont pas disponibles dans les tests unitaires et ne sont pas fournies par mockDomain.Vous pouvez vous moquer de vos requêtes de critères vous-même, par exempleavec mockFor, ou faites de votre test un test d'intégration, où vous avez accès à un environnement de base de données complet.

Voici un exemple de la façon dont vous pourriez vous moquer de votre requête:

mockFor(People).demand.static.createCriteria = { ->
    [list: { closure -> [ <some mock objects> ] } ]
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top