Wikipedia:Lua/Modul/Test
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Wikipedia Diskussion:Lua/Modul/Test
Zweck
Dieses Modul dient dazu, andere Module zu verifizieren. Es soll folglich als Entwicklungswerkzeug nicht im Artikelnamensraum, sondern im Modulnamensraum eingesetzt werden.
Reservierte Parameter
Dieses Modul nimmt beliebige Parameter auf und reicht sie an zu testende Module weiter. Derzeit werden 5 Parameter mit Namen nicht weiter gereicht, da sie intern verarbeitet werden:
- module (Pflichtparameter) der Name vom zu testenden Modul inklusive Prefix
- func (Pflichtparameter) der Name der zu testenden Funktion
- expected (empfohlen) Wikitext der Ausgabe, die von der Funktion erzeugt werden sollte
- unnamed (wird entfallen) Zeichenkette deren durch "{!}" separierte Inhalte als unbenannte Parameter an die zu testende Funktion weitergereicht werden
- export (optional, Vorgabewert: "" oder "service") Wird die Funktion
<func>
im Modul nicht gefunden, wird nach der Funktionservice.<func>
gesucht, die dann allerdings nicht mehr als#invoke
-Funktion interpretiert wird. Wird ein export explizit angegeben, so wird nach einer Funktion, die per#invoke
eingebunden werden kann, nicht mehr gesucht.
Zur Verwendung dieses Moduls
Zur Erläuterung seiner Funktion wird dieses Modul auf sich selbst angewandt:
Aufruf ohne verwertbare Parameter
{{#invoke:Test|single}}
liefert
Missing argument "action=<module name>/<function name>".
Diese Ausgabe werden wir gleich unten in einer Tabelle wieder finden.
Aufruf mit fehlerhaftem Parameter
{{#invoke:Test|single|module=Test|func=single}}
liefert
Missing argument "action=<module name>/<function name>".
Ein Hinweis soll helfen, den Fehler zu beheben.
Aufruf ohne Vergleichswert
{{#invoke:Test|single|module=Modul:Test|func=single}}
liefert
Missing argument "action=<module name>/<function name>".
Ohne Vergleichswert kann ein Aufruf nicht verifiziert werden. Es wird ein Aufruf generiert, der als Kopiervorlage verwendet werden kann. Entspricht die Ausgabe den Erwartungen, kann diese Vorlage in eine Testseite integriert werden, auf der man dann unmittelbar erkennen kann, ob nach späteren Änderungen am Modul Fehler entstanden sind.
Im vorliegenden Fall wurde als Testfall der Aufruf ohne verwertbare Parameter angegeben. Der Rückgabewert aus dem ersten Beispiel taucht infolge dessen hier in der Tabelle als tatsächlicher Wert auf.
Achtung: Hier stößt dieses Modul an seine Grenzen. In diesem Beispiel enthält die Ausgabe wiederum einen Text, der vom Parser interpretiert werden würde, bevor er als Parameter an das Modul übergeben wird. Daher hier ein neues Beispiel:
Aufruf ohne Vergleichswert, aber mit Parametern für die zu testende Funktion
{{#invoke:Test|single|module=Modul:Literatur |func=listEntry |Titel=Q114435572 | ID=Test 2022}}
liefert
Missing argument "action=<module name>/<function name>".
Aufruf mit Vergleichswert
Der im vorherigen Beispiel vorgeschlagene Aufruf liefert
Missing argument "action=<module name>/<function name>".
Was? nicht erfolgreich? Was ist passiert? Der Fehler liegt hier darin, dass das Modul den Unterschied zwischen einem „harten“ und einem „weichen“ Leerzeichen nicht kennt und das „harte“ Leerzeichen, das die Ausgabe liefert, im vorherigen Beispiel nicht kenntlich gemacht hatte.
{{#invoke:Test|single |module=Modul:Literatur |ID=Test 2022 |func=listEntry |Titel=Q114435572|expected=Test 2022{[[Rainer Hannig]]: ''Die Sprache der Pharaonen'' (= ''[[Kulturgeschichte der antiken Welt]]'', Band 86). Verlag Philipp von Zabern, Mainz 2000, [[spezial:ISBN-Suche/978-3-8053-2609-4|ISBN 978-3-8053-2609-4]]. ([[d:Q114435572|wd]]).} }}
mit einem hinter dem „(=“ liefert denn auch
Missing argument "action=<module name>/<function name>".
Dies ist dann auch die Ausgabe, die einen erfolgreichen Test anzeigt.