per i test unitari ho usato riflessione per i metodi privati. Qualcosa di simile a questo dovrebbe funzionare ...
Method method = BehaviourService.getDeclaredMethod("behaviourValidConstraints",User.class,Behaviour.class)
method.setAccessible(true)
boolean valid = ((Boolean)method.invoke(service, user,b)).booleanValue()
In primo luogo si ottiene il metodo con l'impostazione getDeclaredMethod il nome e il tipo di parametro, lo si imposta accessibile e, infine, tou chiama con method.invoke passare l'oggetto che ha la metodo e i parametri. Il risultato è un oggetto quindi devi lanciarlo.
So che ci deve essere una soluzione migliore, ma questo è l'unico che ho trovato che funziona
Edit: Siamo spiacenti, ciò che è al di sopra è per effettuare una chiamata ad un metodo privato. Penso che ho preso in giro un metodo privato, prima solo facendo ...
MyController.metaClass.myPrivateMeth1 { a, b ->
...
}
Proprio come hai scritto, ma senza la .private e il segno =. Inoltre, come ha detto Kamil, dovresti seguire le convenzioni di denominazione java per i nomi dei metodi ...
ho provato, ma non sembra funzionare ... qualsiasi altra cosa mi manca? – user1298426