Ich habe gerade versucht, diesen einfachen Code zu schreiben, um überschreibende Methoden mit metaClass zu testen.
Der Code ist hier:
%Vor%Es hat eine Foo () -Methode, die einfach "alt" ausgibt und vom Konstruktor aufgerufen wurde.
Hier ist der Testcode:
%Vor% Ich habe erwartet, dass die Ausgabe "neu" sein soll, da Foo()
überschrieben wurde. Aber es druckte immer noch "alt". Weiß jemand, warum es scheitert? Danke
Folgendes funktioniert:
%Vor%Und das gilt auch für Folgendes:
%Vor% Dieser ist interessant; Der bar()
Aufruf in Foo()
funktioniert, während die im Konstruktor nicht:
Es sieht so aus, als ob Groovy die Metaklassenmethoden FIRST bei Konstruktoren nicht überprüft. Ich denke, es ist ein Fehler und ich konnte keinen Fehler finden. Was ist mit einem JIRA ?
Tags und Links unit-testing groovy mocking metaclass