J'ai utilisé le code de this blog pour injecter des mockito Mock dans mes tests unitaires. Cependant, avant que le simulacre soit autowired il est enveloppé par Spring dans un proxy JDK. Cela provoque toute vérification (autowiredMock) pour lancer "Argument transmis à verify() n'est pas un simulacre!". L'exception est levée lorsque Mockito vérifie que l'argument passé à vérifier (..) est un objet fictif Mockito valide dans cette méthode:Mockito se moque de Spring: "L'argument transmis à verify() n'est pas un faux!"
private static Method getCallbacksSetter(Class type, String methodName) throws NoSuchMethodException {
return type.getDeclaredMethod(methodName, new Class[]{ Callback[].class });
}
Ma question est de savoir comment dire Spring pas aux haricots simulacres proxy Mockito que je inscrire dans le BeanFactoryPostProcessor? Veuillez noter que je voudrais éviter de définir proxy-target-class = "true".
Merci
Eh bien 'proxy-target-class' est la seule façon de le faire - pourquoi voulez-vous l'éviter? – skaffman
Parce que CJLIB exige que les classes d'implémentation d'interface aient des constructeurs non-arg accessibles et que la plupart de mes classes aient des constructeurs privés sans-arg ou multi-arguments autowired. – alecswan