Wikipedia:Lua/Modul/Test

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
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. Die Module sollen nicht auf abzufangende Laufzeitfehler untersucht werden. Statt dessen soll die Ausgabe daraufhin überprüft werden, ob sie gewünschten Vorgaben entspricht. Abweichungen werden dabei farblich hervorgehoben,selbst wenn sie für Leser nicht erkennbar wären.

Keine reservierten Parameter

Dieses Modul nimmt beliebige Parameter auf und reicht sie an zu testende Module weiter. Alle Parameter mit Namen werden weitergereicht. Aus folgenden Parametern werden zur internen Verarbeitung Inhalte entfernt:

action (Pflichtparameter) der Name vom zu testenden Modul und der zu testenden Funktion inklusive Modul-Prefix; Vom Parameter werden alle Zeichen bis zu einem ersten "//" (inklusive) abgetrennt. Wenn dann nur ein Leerstring verbleibt, wird dieser Parameter gelöscht.
expected (empfohlen) Wikitext der Ausgabe, die von der Funktion erzeugt werden sollte; Vom Parameter werden alle Zeichen bis zu einem ersten "<split></split>" (inklusive) abgetrennt. Wenn dann nur ein Leerstring verbleibt, wird dieser Parameter gelöscht.

Aus allen Parameterwerten werden "inTestSeries"- und "counter"-Tags entfernt. Testreihen werden so generiert, dass entsprechend markierte Parameter entweder nur optional angezeigt, oder hochgezählt werden.

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|action=Test}}

liefert

Inappropriate argument "action" is "Test" but should be "<module name>/<function name>" instead.

Ein Hinweis soll helfen, den Fehler zu beheben.

Aufruf ohne Vergleichswert

{{#invoke:Test|single|action=Test/single}}

liefert

call{{#invoke:Test |single}}
actual valueMissing argument "action=<module name>/<function name>".
following call whould indicate success:
{{#invoke:Test |single |action=Test/single |expected=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.Für noch mehr Klarheit hier ein weiteres Beispiel:

Aufruf ohne Vergleichswert, aber mit Parametern für die zu testende Funktion

{{#invoke:Test|single|action=Modul:Literatur/listEntry |Titel=Q114435572 | ID=Test 2022}}

liefert

call{{#invoke:Literatur |listEntry|ID=Test 2022 |Titel=Q114435572}}
actual valueTest 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
following call whould indicate success:
{{#invoke:Test |single |ID=Test 2022 |Titel=Q114435572 |action=Modul:Literatur/listEntry |expected=Test 2022{[[Rainer Hannig]]: ''Die Sprache der Pharaonen'' (=&nbsp;''[[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]]).} }}

Aufruf mit Vergleichswert

Die in den vorherigen Beispielen vorgeschlagenen Aufrufe liefern

call{{#invoke:Test |single}}
actual valueMissing argument "action=<module name>/<function name>".

bzw.

call{{#invoke:Literatur |listEntry|ID=Test 2022 |Titel=Q114435572}}
actual valueTest 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}

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 |action=Modul:Literatur/listEntry |ID=Test 2022 |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 &#160; und liefert infolgedessen

call{{#invoke:Literatur |listEntry|ID=Test 2022 |Titel=Q114435572}}
actual valueTest 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
expected value>Test 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
Test 2022{[[Rainer Hannig]]: ''Die Sprache der Pharaonen'' (=&nbsp;''[[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]]).}
Test 2022{[[Rainer Hannig]]: ''Die Sprache der Pharaonen'' (=&#0160;''[[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 einfachem Leerzeichen an dieser Stelle erhalten wir stattdessen

call{{#invoke:Literatur |listEntry|ID=Test 2022 |Titel=Q114435572}}
actual valueTest 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
expected value>Test 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
Test 2022{[[Rainer Hannig]]: ''Die Sprache der Pharaonen'' (=&nbsp;''[[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]]).}
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]]).}

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:

call{{#invoke:Literatur |listEntry|ID=Test 2022 |Titel=Q114435572}}
actual valueTest 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
expected value>Test 2022{Rainer Hannig: Die Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
Test 2022{[[Rainer Hannig]]: ''Die Sprache der Pharaonen'' (=&nbsp;''[[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]]).}
Test 2022{[[Rainer Hannig]]: ''Die 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]]).}
call{{#invoke:Literatur |listEntry|ID=Test 2022 |Titel=Q114435572}}
actual valueTest 2022{Rainer Hannig: Die Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
expected value>Test 2022{Rainer Hannig: Die schöne Sprache der Pharaonen (= Kulturgeschichte der antiken Welt, Band 86). Verlag Philipp von Zabern, Mainz 2000, ISBN 978-3-8053-2609-4. (wd).}
Test 2022{[[Rainer Hannig]]: ''Die [..]Sprache der Pharaonen'' (=&nbsp;''[[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]]).}
Test 2022{[[Rainer Hannig]]: ''Die schöne Sprache der Pharaonen'' (=&nbsp;''[[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]]).}