tengo el siguiente en la configuración de la prueba:¿Cómo reinicio un método estático falso en Groovy?
def originalPostAsXml = RestClient.&postAsXml
RestClient.metaClass.'static'.postAsXml = {
String uriPath, String xml ->
return 65536
}
y en la limpieza de prueba:
RestClient.metaClass.'static'.postAsXml = originalPostAsXml
Pero cuando la siguiente prueba se ejecuta, cuando se trata de ejecutar RestClient.postAsXml, se topa un StackOverflowError:
at groovy.lang.Closure.call(Closure.java:282)
parece que RestClient.postAsXml recursiva señala a sí mismo. ¿Cuál es la forma correcta de restablecer un método estático fallado? pista
Aquí hay una pregunta similar anterior: http://stackoverflow.com/questions/920582/how-to-change-behaviour-of-the-methed-in-groovy-using -that-method-in-metaclass – schmolly159
Puede restablecer la metaclase - Consulte esta pregunta que tiene respuestas http://stackoverflow.com/questions/1612569/how-do-i-undo-meta-class-changes-after-executing -groovyshell –