Obsolete Testbaustein-Implementierungen
Wichtig
Die Testbaustein-Implementierungen CBM.ETrigA
und TM.Testcase_Base
werden von Version 5.0.0.0 noch unterstützt, in zukünftigen Versionen möglicherweise nicht mehr.
Wenn Sie Testfälle mit alter Implementierung haben und diese auf die neue Implementierung anpassen wollen, müssen Sie folgende Punkte beachten
Verwenden Sie stattdessen
TM.Testcase
(Einzeltestbaustein implementieren).Leiten Sie einen neuen Baustein von
TM.Testcase
ab und übertragen Sie die Logik der Methoden des existierenden Bausteins (nachCBM.ETrigA
). Dazu erstellen Sie mit dem Assistenten einen neuenTM.Testcase
. Aktivieren Sie dabei alle Optionen, so dass alle möglichen Beispielinhalte mit generiert werden (Template, Kommentare, Methoden, ...). So können Sie die Unterschiede leicht erkennen. Größere Teile Ihrer bestehenden Test-Implementierung können gleich bleiben, wenn Sie dabei folgende Konventionen desTM.Testcase
im Unterschied zu den Methoden desCBM.ETrigA
beachten:Die Methoden
prvCyclicAction()
,prvStart()
,prvAbort()
undprvResetOutputs()
dürfen im SchemaTM.Testcase
nicht überladen werden. Somit können sie nicht einfach vomCBM.ETrigA
-basierten Testbaustein in denTM.Testcase
-basierten kopiert werden. Stattdessen darf nur der Inhalt dieser Methoden in die Äquivalenten des neuenTM.Testcase
-basierten Testbausteins kopiert und angepasst werden, wie es im Folgenden erläutert wird:Anstelle der Methode
prvCyclicAction()
wirdExecute()
implementiert:Der
SUPER
-Aufruf entfällt. Es darf nicht mehrSUPER^.prvCyclicAction()
und stattdessen auch nichtSUPER^.Execute()
aufgerufen werden.Der Ausgang
VAR_OUTPUT xDone
darf nicht mehr direkt gesetzt werden. Um das erfolgreiche Testende zu signalisieren, muss die MethodeExecute()
den WertTRUE
zurückliefern.Das direkte Setzen der Fehlerausgänge
VAR_OUTPUT xError
undiErrorCode
ist weiterhin möglich, sollte aber durch entsprechende Assert-Funktionen ersetzt werden. Wir behalten uns vor, die Fehlerausgänge in zukünftigen Versionen zu ändern und planen die Assert-Funktionen als Migrationspfad.Der Ausgang
sInfo
hat nun den TypWSTRING
und darf nicht mehr explizit deklariert werden: Die Stringänge vonsInfo
wird nun über den BibliotheksparameterCONSTANTS.WSTRING_LENGTH
definiert. Der AusgangsInfo
darf weiterhin direkt beschrieben werden. Bei Verwendung von Assert-Funktionen kann er allerdings wechselseitig überschrieben werden.
Anstelle der
Methode prvAbort()
wirdAbort()
implementiert:Der
SUPER
-Aufruf entfällt. Es darf nicht mehrSUPER^.prvAbort()
aufgerufen werden und stattdessen auch nichtSUPER^.Abort()
.Die Variable
xAbortInProgress
existiert nicht mehr. Stattdessen muss die MethodeAbort()
den WertTRUE
zurückliefern, wenn der Abbruch zu Ende ist.Achtung: Dies hat die invertierte Semantik zu
xAbortInProgress
.
Anstelle der Methode
prvStart()
wirdSetup()
implementiert:Der
SUPER
-Aufruf entfällt. Es darf nicht mehrSUPER^.prvStart()
aufgerufen werden und stattdessen auch nichtSUPER^.Setup()
.Die Methode
Setup()
muss weiterhin keinen Wert zurückgeben (wird ignoriert).
Anstelle der Methode
prvResetOutputs()
wirdTearDown()
implementiert:Der
SUPER
-Aufruf entfällt. Es darf nicht mehrSUPER^.prvResetOutputs
aufgerufen werden und stattdessen auch nichtSUPER^.TearDown()
.Die Methode
TearDown()
muss weiterhin keinen Wert zurückgeben (wird ignoriert)
Verwenden Sie stattdessen
TM.Testcase
.Der
TM.Testcase_Base
wurde in der Vergangenheit gerne benutzt, um einensInfo
-Ausgang mit mehr als 255 Zeichen definieren zu können - derTM.Testcase
hatte nur einen definiertensInfo
-Ausgang mit 255 Zeichen. Nun können Sie Länge dessInfo
-Ausgangs mittels BibliotheksparameterCONSTANTS.WSTRING_LENGTH
festlegen.Leiten Sie direkt von TM.Testcase ab, anstatt von
TM.Testcase_Base
. Dabei müssen Sie jedoch folgendes beachten:Entfernen Sie den eigenen Ausgang
sInfo
.Ändern Sie die Zugriffe auf das
sInfo
vonTM.Testcase
gegebenenfalls aufWSTRING
(stattSTRING
), falls der eigenesInfo
-Ausgang ein STRING war.Definieren Sie den Bibliotheksparameter
CONSTANTS.WSTRING_LENGTH
der BibliothekTest Manager IEC Unit Test, 5.0.0.0
(oder neuer) auf die maximal benötigte Länge.
Testbausteine, die vollkommen ohne Basis implementiert wurden und deshalb ausschließlich die Schnittstellenkonvention einhalten, könnten in der Zukunft ebenfalls inkompatibel werden. Es empfiehlt sich immer, von TM.Testcase
abzuleiten.