Für Unit-Tests beginnen sollte ich Reflexion für private Methoden verwendet haben. Etwas ähnliches wie dies funktionieren sollte ...
Method method = BehaviourService.getDeclaredMethod("behaviourValidConstraints",User.class,Behaviour.class)
method.setAccessible(true)
boolean valid = ((Boolean)method.invoke(service, user,b)).booleanValue()
Zuerst erhalten Sie die Methode mit getDeclaredMethod den Namen und die Parametertypen einstellen, setzen Sie es zugänglich und schließlich mit method.invoke tou rufen Sie das Objekt übergeben, die das hat Methode und die Parameter. Das Ergebnis ist ein Objekt, also musst du es umwandeln.
Ich weiß, es muss eine bessere Lösung sein, aber dies ist die einzige, die ich gefunden habe, die
bearbeiten arbeitet: für einen Anruf an eine private Methode Sorry, was oben ist, ist. Ich denke, dass ich verspottet habe, schrieb man es wie eine private Methode vor nur tun ...
MyController.metaClass.myPrivateMeth1 { a, b ->
...
}
Gerade aber ohne die .private und dem = -Zeichen. Auch, wie Kamil sagte, sollten Sie Java-Namenskonventionen für Methodennamen ...
ich es versucht, aber scheint nicht zu funktionieren ... alles, was ich bin fehlt? – user1298426