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|single2}}
liefert
Skriptfehler: Die Funktion „single2“ ist nicht vorhanden.
Diese Ausgabe werden wir gleich unten in einer Tabelle wieder finden.
Aufruf mit fehlerhaftem Parameter
{{#invoke:Test|single2|action=Test/single}}
liefert
Skriptfehler: Die Funktion „single2“ ist nicht vorhanden.
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>".
Das „harte“ Leerzeichen wird dabei nicht bereits in der Übergabe an das Modul umgesetzt, sondern erst in der endgültigen Ausgabe. Nehmen wir an, in der Ausgabe würde statt dessen ein „weiches“ Leerzeichen erwartet. Tatsächlich wird jedoch ein „hartes“ ausgegeben. Der Fehler wäre dann jedoch kaum im direkten Vergleich der Ausgabe von erwartetem und tatsächlichem Wert erkennbar. An dieser Stelle muss darauf hingewiesen werden, dass jedes Zeichen auf unterschiedlichste Weise codiert werden kann. Im folgenden Beispiel wird das „harte“ Leerzeichen erst umcodiert und dann durch ein „weiches“ ersetzt:
{{#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]]).} }}
enthält ein hier nicht erkennbares   und liefert infolgedessen
Missing argument "action=<module name>/<function name>".
mit einfachem Leerzeichen an dieser Stelle erhalten wir stattdessen
Missing argument "action=<module name>/<function name>".
In diesen beiden letzten Beispielen zeigt die vorletzte Tabellenzeile den Wikitext der tatsächlichen Ausgabe und die letzte Zeile den Wikitext, der mit dem expected - Parameter spezifiziert wurde. Leerzeichen kommen daher bei der Überprüfung eine besondere Beachtung zu. In all den Fällen wurde die tatsächliche Ausgabe nicht verändert.
Fehlende, oder überschüssige Ausgaben
In den nachfolgenden beiden Beispielen soll nun noch gezeigt werden, wie es aussieht, wenn in der als erwartet spezifizierten Ausgabe kein anderer, wohl aber weniger, oder mehr Text steht, als in der tatsächlichen Ausgabe:
Missing argument "action=<module name>/<function name>".
Missing argument "action=<module name>/<function name>".