Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

DUnit Vererbung/falsche Methode aufgerufen

  Alt 12. Feb 2023, 17:57
Hallo,

ich versuche gerade ein paar Unit Test Fehler in der DEC zu beheben.
Nach Korrektur eines Fehlers in den Testdaten bin ich jetzt über ein anderes
mich verwirrendes Problem gestoßen.

Es gibt im Unit Test eine Klasse TestTHash_Keccak_Base, von der erben alle
Keccak Hash Testklassen. Die TestTHash_Keccak_Base wiederrum erbt von
TestTHash_SHA3_Base, die wiederum von noch einer anderen erbt, was hier aber
keine Rolle spielt.

In der TestTHash_SHA3_Base gibt es eine strict protected Methode LoadTestDataFile.
In der Methode wird eine Methode AddLastByteForKeccakTest aufgerufen. Diese ist
als Virtual deklariert. Darf also überschrieben werden und liefert in der Klasse
TestTHash_SHA3_Base nur das wieder zurück, was man als Parameter rein gesteckt hat.

In der TestTHash_Keccak_Base soll die aber mit dem übergebenen Parameter einiges
anstellen und dementsprechend käme auch was anderes zurück. In dieser Klasse ist
die Methode als override gekennzeichnet.

Nur: führe ich das aus, lande ich eindeutig in der Implementierung aus der Klasse
TestTHash_SHA3_Base statt der aus TestTHash_Keccak_Base .

Hat irgendwer eine Idee warum?

Hier der Code:
https://github.com/MHumm/DelphiEncry...ECHashSHA3.pas

Grüße
TurboMagic
  Mit Zitat antworten Zitat