Dla testów jednostkowych Użyłem Reflection metod prywatnych. Coś podobnego do tego powinno działać ...
Method method = BehaviourService.getDeclaredMethod("behaviourValidConstraints",User.class,Behaviour.class)
method.setAccessible(true)
boolean valid = ((Boolean)method.invoke(service, user,b)).booleanValue()
najpierw dostać metodę z getDeclaredMethod ustawiania nazwy i typy parametrów można ustawić to dostepne i wreszcie tou nazwać z method.invoke przekazując obiekt, który ma metoda i parametry. Rezultatem jest obiekt, więc musisz go rzucić.
Wiem, że musi być lepszym rozwiązaniem, ale ten jest jedynym, odkryłem, że działa
Edycja: Niestety, co powyżej jest za wykonanie połączenia do prywatnej metody. myślę, że mam szydzili prywatną metodę, zanim po prostu robi ...
MyController.metaClass.myPrivateMeth1 { a, b ->
...
}
Tak jak napisałem, ale bez .private i znaku =. Ponadto, jak powiedział Kamil, powinieneś przestrzegać konwencji nazewnictwa dla nazw metod ...
Próbowałem, ale nie wydają się działać ... nic innego mi brakuje? – user1298426