Je souhaite tester un contrôleur Grails qui appelle un service. Je voudrais me moquer du service. Le service a une méthode:Aide au test de l'unité Grails requise
JobIF JobServiceIF.getJob(int)
et JobIF a une méthode:
String JobIF.getTitle()
Voici mon contrôleur
def workActivities = { JobIF job = jobService.getJob(params.id) [career:job] }
Je comprends que je dois moquer le service et la classe d'emplois (il y a des implémentations concrètes pour les deux) mais je me bats pour avoir la tête autour du Groovy Mock syntaxe d'objet. Comment puis-je me moquer d'un travail et définir le titre à quelque chose, dire "Architecte", puis tester le code?
Jusqu'à présent je:
void testWorkActivities() { def controller = new CareersController() ... // Mocking stuff I don't know how to do controller.params.id = 12 def model = controller.workActivities() assertEquals "Architect", model["career"].getTitle() }
Merci. Puis-je poser une autre question? Si le JobService a un argument constructeur, comment le spécifier? Par exemple, JobService prend un JobDao comme argument de constructeur. Merci. – Matt
Le stacktrace par la voie est: Testcase: testWorkActivities a pris 0,344 sec \t a provoqué une erreur Impossible de trouver le quelle méthode() pour appeler de cette liste: publique uk.co.cascaid.biz.job.JobObservableCachedService # (uk.co.cascaid.dao.job.JobDaoIF, uk.co.cascaid.biz.common.paging.PageCollectionServiceIF) public uk.co.cascaid.biz.job.JobObservableCachineService # (fr.caça.caid. dao.job.JobDaoIF) org.codehaus.groovy.runtime.metaclass.MethodSelectionException: –
Matt