suchen
HeimBackend-EntwicklungPHP-TutorialVerspottete Ihre Testabhängigkeiten mit Spott

Mock your Test Dependencies with Mockery

Während nicht jeder dies tut, ist das Testen Ihrer Bewerbung einer der grundlegendsten Teile eines Entwicklers. Unit -Tests sind der häufigste Test. Bei Unit -Tests können Sie überprüfen, ob eine Klasse genau so ausgeführt wird, wie Sie es erwartet haben. Manchmal verwenden Sie Dienste von Drittanbietern in Ihrer Anwendung, und es ist schwierig, alles für Unit-Tests einzurichten. Dies ist der Zeitpunkt, an dem die Simulation ins Spiel kommt.

Schlüsselpunkte

  • Verspottung ist der Prozess, einen Ersatz für reale Objekte in einem Unit -Test zu erstellen, was besonders nützlich ist, wenn Anwendungen getestet werden, die stark auf die Abhängigkeitsinjektion beruhen.
  • Spott ist eine Bibliothek, die von Pádraic Brady erstellt wurde, mit der Objekte in Unit -Tests verspottet werden können.
  • Mit
  • Spott ermöglicht es Entwicklern, die Erwartungen für die Anzahl der Methodenaufrufe, Parameter und die zurückgegebenen Werte zu definieren, was es zu einem leistungsstarken Tool zum Isolieren von Abhängigkeiten in Unit -Tests macht.
  • Während Phpunit bereits Objekte verspotteten, bietet Spott für Entwickler, die sicherstellen möchten, dass ihre Unit -Tests nicht von anderen Klassen beeinflusst werden.

Was ist Simulation?

Verspottung eines Objekts ist nichts anderes, als ein Ersatzobjekt zu erstellen, das das reale Objekt in Unit -Tests ersetzt. Wenn Ihre Anwendung stark von der Abhängigkeitsinjektion abhängt, ist das Verspotten eine praktikable Art und Weise.

Es kann mehrere Gründe für die Verspottung von Objekten geben:

  1. Es ist am besten, die Klasse bei der Durchführung von Unit -Tests zu isolieren. Sie möchten nicht, dass eine andere Klasse oder ein anderer Dienst Ihre Einheitstests beeinträchtigen.
  2. Das Objekt existiert noch nicht. Sie können zuerst den Test erstellen und dann das endgültige Objekt erstellen.
  3. Mock -Objekte sind normalerweise schneller als die Vorbereitung der gesamten Datenbank zum Testen.

Sie verwenden möglicherweise Phpunit, wenn Sie Unit -Tests ausführen. Phpunit wird mit einigen Standard -Simulationsfunktionen geliefert, wie in der Dokumentation gezeigt. In diesem Artikel von Jeune Asuncion können Sie mehr über Simulationen und die Simulationsfunktionen von Phpunit lesen.

In diesem Artikel werden wir in die von Pádraic Brady erstellte Bibliothekspott eintauchen. Wir werden eine Temperaturklasse erstellen, die Wetterdienste injiziert, die derzeit nicht vorhanden sind.

Einstellungen

Beginnen wir mit der Einrichtung des Projekts. Wir beginnen mit der Datei composer.json, die den folgenden Inhalt enthält. Dies wird sicherstellen, dass wir Spott und Phpunit haben.

<code>{
    "name": "sitepoint/weather",
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require-dev": {
        "phpunit/phpunit": "4.1.*",
        "mockery/mockery": "0.9.*"
    }
}</code>

Wir erstellen auch eine Phpunit -Konfigurationsdatei namens Phpunit.xml

<phpunit>
    <testsuite name="SitePoint Weather">
        <directory>./tests</directory>
    </testsuite>
    <listeners>
        <listener class="\Mockery\Adapter\Phpunit\TestListener"
                  file="vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php"/>
    </listeners>
</phpunit>

Es ist wichtig, diesen Hörer zu definieren. Wenn es keinen Zuhörer gibt, wenn die Methoden once(), twice() und times() falsch verwendet werden, wird kein Fehler erhöht. Dies wird später ausführlich beschrieben.

Ich habe auch 2 Verzeichnisse erstellt. Das SRC -Verzeichnis wird verwendet, um meine Klassen abzuhalten, und das Testverzeichnis wird verwendet, um unsere Tests zu speichern. Im SRC -Verzeichnis habe ich den Pfad sitepointweather erstellt.

Wir erstellen zuerst das WeatherserviceInterface. Wetterdienste, die nicht existieren, werden diese Schnittstelle implementieren. In diesem Fall bieten wir nur eine Methode an, die uns die Temperatur von Celsius gibt.

<code>{
    "name": "sitepoint/weather",
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require-dev": {
        "phpunit/phpunit": "4.1.*",
        "mockery/mockery": "0.9.*"
    }
}</code>

Daher haben wir einen Service, der uns Celsius -Temperatur bietet. Ich möchte Fahrenheit bekommen. Dazu habe ich eine neue Klasse namens Temperaturenservice erstellt. Dieser Service wird Wetterdienste injizieren. Darüber hinaus definieren wir auch eine Methode, die Celsius in Fahrenheit umwandelt.

<phpunit>
    <testsuite name="SitePoint Weather">
        <directory>./tests</directory>
    </testsuite>
    <listeners>
        <listener class="\Mockery\Adapter\Phpunit\TestListener"
                  file="vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php"/>
    </listeners>
</phpunit>

Erstellen Sie Unit -Tests

Wir sind bereit, Unit -Tests einzurichten. Wir erstellen eine Temperaturerservicetest -Klasse im Testverzeichnis. In dieser Klasse erstellen wir die Methode testGetTempFahrenheit(), die unsere Fahrenheit -Methode testet.

Der erste Schritt in dieser Methode besteht darin, ein neues Temperaturservice -Objekt zu erstellen. So wie wir dies tun, fordert unser Konstruktor ein Objekt an, das das WeatherserviceInterface implementiert. Da wir noch kein Objekt haben (wir wollen es auch nicht), werden wir Spott verwenden, um ein Scheinobjekt für uns zu erstellen. Mal sehen, wie die Methode nach Abschluss aussieht.

namespace SitePoint\Weather;

interface WeatherServiceInterface
{
    /**
     * 返回摄氏温度
     *
     * @return float
     */
    public function getTempCelsius();
}

Wir erstellen zuerst das Scheinobjekt. Wir erzählen Spott, welches Objekt (oder die Schnittstelle) wir verspotten möchten. Der zweite Schritt besteht darin, die Methode zu beschreiben, die dieses Scheinobjekt aufgerufen wird. In der Methode shouldReceive() definieren wir den Namen der zu aufgerufenen Methode.

Wir definieren die Häufigkeit, mit der diese Methode aufgerufen wird. Wir können once(), twice() und times(X) verwenden. In diesem Fall erwarten wir, dass es nur einmal aufgerufen wird. Wenn nicht genannt oder übermäßige Anrufe aufgerufen werden, schlägt der Unit -Test fehl.

Schließlich definieren wir den Wert, der in der andReturn() -Methode zurückgegeben wird. In diesem Fall kehren wir 25 zurück. Spott verfügt auch über Rückgabethoden wie andReturnNull(), andReturnSelf() und andReturnUndefined(). Wenn Sie das erwarten, kann Spott auch Ausnahmen werfen.

Wir haben jetzt Scheinobjekte, mit denen unser Temperaturservice -Objekt erzeugt und wie gewohnt testen kann. 25 Grad Celsius ist 77 Grad Fahrenheit, daher prüfen wir, ob wir 77 von unserer getTempFahrenheit() -Methode erhalten.

Wenn Sie in Ihrem Root -Verzeichnis vendor/bin/phpunit tests/ ausführen, erhalten Sie ein grünes Licht von Phpunit, was darauf hinweist, dass alles perfekt ist.

Erweiterte Verwendung

Das obige Beispiel ist recht einfach. Keine Parameter, nur ein einfacher Anruf. Lassen Sie uns die Dinge komplizierter machen.

Angenommen, unser Wetterdienst hat auch eine Möglichkeit, die Temperatur zu den genauen Stunden zu erhalten. Wir fügen unserem aktuellen WeatherserviceInterface die folgende Methode hinzu.

namespace SitePoint\Weather;

class TemperatureService
{
    /**
     * @var WeatherServiceInterace $weatherService 保存天气服务
     */
    private $weatherService;

    /**
     * 构造函数。
     *
     * @param WeatherServiceInterface $weatherService
     */
    public function __construct(WeatherServiceInterface $weatherService) {
        $this->weatherService = $weatherService;
    }

    /**
     * 获取当前华氏温度
     *
     * @return float
     */
    public function getTempFahrenheit() {
        return ($this->weatherService->getTempCelsius() * 1.8000) + 32;
    }
}

Wir möchten wissen, wie die Durchschnittstemperatur zwischen 0 und 18:00 Uhr liegt. Dazu erstellen wir eine neue Methode bei Temperaturservice, um die Durchschnittstemperatur zu berechnen. Dazu holen wir 7 Temperaturen aus Weatherservice und berechnen den Durchschnitt.

<code>{
    "name": "sitepoint/weather",
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.3.3"
    },
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require-dev": {
        "phpunit/phpunit": "4.1.*",
        "mockery/mockery": "0.9.*"
    }
}</code>

Schauen wir uns unsere Testmethode an.

<phpunit>
    <testsuite name="SitePoint Weather">
        <directory>./tests</directory>
    </testsuite>
    <listeners>
        <listener class="\Mockery\Adapter\Phpunit\TestListener"
                  file="vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php"/>
    </listeners>
</phpunit>

Wir simulieren die Schnittstelle erneut und definieren die zu aufgerufene Methode. Als nächstes definieren wir die Häufigkeit, mit der diese Methode aufgerufen wird. Wir haben im vorherigen Beispiel once() verwendet, und jetzt verwenden wir times(7), um anzuzeigen, dass wir erwarten, dass diese Methode 7 -mal bezeichnet wird. Wenn die Methode nicht genau 7 Mal aufgerufen wird, schlägt der Test fehl. Wenn Sie den Hörer nicht in der Konfigurationsdatei phpunit.xml definieren, erhalten Sie keine Benachrichtigungen darüber.

Als nächstes definieren wir die

-Methode. In der Methode with() können Sie die von Ihnen erwarteten Parameter definieren. In diesem Fall erwarten wir 7 verschiedene Stunden. with

Schließlich haben wir die

-Methode. In diesem Fall geben wir 7 Rückgabewerte an. Wenn Sie weniger Rückgabewerte definieren, wird der letzte verfügbare Rückgabewert jedes Mal wiederholt. andReturn()

Natürlich kann Spott mehr tun. Für die vollständige Anleitung und Dokumentation empfehle ich Ihnen, die GitHub -Seite zu lesen.

Wenn Sie sich für den Code des obigen Projekts interessieren, können Sie diese GitHub -Seite überprüfen.

Schlussfolgerung

Mit Phpunit können Sie bereits Objekte verspotten. Sie können jedoch auch Spott verwenden, wie im obigen Beispiel erläutert. Wenn Sie Unit -Testen in Ihrer Klasse testen und nicht möchten, dass eine andere Klasse Ihre Tests beeinflusst, kann es Ihnen einfach helfen. Wenn Sie wirklich funktionale Tests durchführen möchten, ist es besser zu sehen, ob Sie echte Tests integrieren können. Verwenden Sie derzeit Phpunit -Simulation und überlegen Sie, ob Sie auf Spott wechseln? Möchten Sie in nachfolgenden Beiträgen mehr und größere Spottbeispiele sehen? Bitte lassen Sie es mich in den Kommentaren unten wissen.

FAQs über Spott- und Testabhängigkeiten (FAQ)

Was ist Spott und warum ist es für PHP -Tests wichtig?

Spott ist ein leistungsstarkes und flexibles PHP -Mock -Objekt -Objekt -Framework für Unit -Tests. Es ist als direkte Alternative zur Mock -Objektfunktionalität von Phpunit konzipiert. Mit Spott ermöglicht es Entwicklern, den getesteten Code zu isolieren und Test-Stand-Ins zu erstellen, die das Verhalten komplexer Objekte simulieren. Dies ist bei der Einheitstests von entscheidender Bedeutung, da sichergestellt wird, dass der getestete Code nicht von externen Faktoren oder Zustandszuständen abhängt.

Wie installiere und richte ich Spott in meinem PHP -Projekt ein?

Um Spott zu installieren, müssen Sie einen Komponisten haben, einen PHP -Abhängigkeits -Manager. Sie können Spott installieren, indem Sie den Befehl

ausführen. Nach der Installation können Sie Spott in der Testdatei einrichten, indem Sie in der Test -Teardown -Methode composer require --dev mockery/mockery aufrufen, um die Scheinobjekte zu bereinigen. Mockery::close()

Wie erstelle ich Scheinobjekte mit Spott?

Scheinobjekte in Spott erstellen ist einfach. Sie können die

-Methode verwenden, um ein Scheinobjekt zu erstellen. Zum Beispiel erstellt mock() ein Scheinobjekt für MyClass. $mock = Mockery::mock('MyClass');

Wie kann man die Erwartungen in Spott definieren?

In Spott definieren Sie die Erwartungen, indem Sie Methoden mit verspotteten Objekten verknüpfen. Zum Beispiel $mock->shouldReceive('myMethod')->once()->andReturn('mocked value'); Dieser Code zeigt Spott an, dass "MyMethod" einmal aufgerufen wird und "verspotteten Wert" zurückgeben sollte.

Was ist der Unterschied zwischen Simulation und Stummel in Spott?

In Spott ist ein Mock das Objekt, auf das wir das gewünschte festlegen können, während ein Stub ein Scheinobjekt ist, das eine vorprogrammierte Antwort hat. Wenn die Antwort das einzig Wichtige ist, werden normalerweise Stubs verwendet, und beim Testen der Interaktion selbst werden Mocks verwendet.

Wie kann man Spott verwenden, um private Methoden zu testen?

Es wird nicht empfohlen, private Methoden direkt zu testen, da es gegen das Kapselungsprinzip verstößt. Wenn Sie jedoch möchten, können Sie die shouldAllowMockingProtectedMethods() -Methode in Spott verwenden, um die verspotteten geschützten und privaten Methoden zu ermöglichen.

Wie kann man Konstruktorparameter in Spott umgehen?

Wenn die Klasse, die Sie simulieren möchten, Konstruktoren mit Argumenten enthält, können Sie sie als Array an die mock() -Methode übergeben. Zum Beispiel wird $mock = Mockery::mock('MyClass', [$arg1, $arg2]); $ arg1 und $ arg2 an den Konstruktor der MyClass weitergeben.

Wie kann man Spott verwenden, um statische Methoden zu simulieren?

Spott bietet eine Methode zum Simulieren statischer Methoden mit dem Präfix alias:. Beispielsweise erstellt $mock = Mockery::mock('alias:MyClass'); ein Scheinobjekt, mit dem die gewünschte Einstellung der statischen Methode der MyClass festgelegt werden kann.

Wie können Sie überprüfen, ob alle Erwartungen in Spott erfüllt werden?

Sie können die Mockery::close() -Methode in der Methode der Testmontage verwenden, um zu überprüfen, ob alle Erwartungen erfüllt wurden. Wenn keine Erwartungen erfüllt sind, wird Spott eine Ausnahme auswerfen.

Wie gehe ich mit Ausnahmen in Spott um?

Mit der Methode andThrow() können Sie das Mock -Objekt einrichten, um eine Ausnahme auszulösen. Zum Beispiel wird $mock->shouldReceive('myMethod')->andThrow(new Exception); eine Ausnahme auswerfen, wenn "MyMethod" aufgerufen wird.

Das obige ist der detaillierte Inhalt vonVerspottete Ihre Testabhängigkeiten mit Spott. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was sind die Vorteile der Verwendung einer Datenbank zum Speichern von Sitzungen?Was sind die Vorteile der Verwendung einer Datenbank zum Speichern von Sitzungen?Apr 24, 2025 am 12:16 AM

Die Hauptvorteile der Verwendung von Datenbankspeichersitzungen sind Persistenz, Skalierbarkeit und Sicherheit. 1. Persistenz: Auch wenn der Server neu gestartet wird, können die Sitzungsdaten unverändert bleiben. 2. Skalierbarkeit: Anwendbar für verteilte Systeme, um sicherzustellen, dass Sitzungsdaten zwischen mehreren Servern synchronisiert werden. 3. Sicherheit: Die Datenbank bietet verschlüsselten Speicher zum Schutz vertraulicher Informationen.

Wie implementieren Sie eine benutzerdefinierte Sitzung in PHP?Wie implementieren Sie eine benutzerdefinierte Sitzung in PHP?Apr 24, 2025 am 12:16 AM

Das Implementieren der benutzerdefinierten Sitzung in PHP kann durch die Implementierung der SessionHandlerInterface -Schnittstelle durchgeführt werden. Die spezifischen Schritte umfassen: 1) Erstellen einer Klasse, die SessionHandlerInterface wie CustomSessionHandler implementiert; 2) Umschreiben von Methoden in der Schnittstelle (z. B. offen, schließen, lesen, schreiben, zerstören, GC), um die Lebenszyklus- und Speichermethode von Sitzungsdaten zu definieren; 3) Registrieren Sie einen benutzerdefinierten Sitzungsprozessor in einem PHP -Skript und starten Sie die Sitzung. Auf diese Weise können Daten in Medien wie MySQL und Redis gespeichert werden, um Leistung, Sicherheit und Skalierbarkeit zu verbessern.

Was ist eine Sitzungs -ID?Was ist eine Sitzungs -ID?Apr 24, 2025 am 12:13 AM

SessionID ist ein Mechanismus, der in Webanwendungen verwendet wird, um den Benutzersitzstatus zu verfolgen. 1. Es handelt sich um eine zufällig generierte Zeichenfolge, mit der die Identitätsinformationen des Benutzers während mehrerer Interaktionen zwischen dem Benutzer und dem Server aufrechterhalten werden. 2. Der Server generiert und sendet ihn über Cookies- oder URL -Parameter an den Client, um diese Anforderungen in mehreren Anforderungen des Benutzers zu identifizieren und zu verknüpfen. 3. Die Erzeugung verwendet normalerweise zufällige Algorithmen, um Einzigartigkeit und Unvorhersehbarkeit zu gewährleisten. 4. In der tatsächlichen Entwicklung können In-Memory-Datenbanken wie Redis verwendet werden, um Sitzungsdaten zu speichern, um die Leistung und Sicherheit zu verbessern.

Wie gehen Sie mit Sitzungen in einer staatenlosen Umgebung (z. B. API) um?Wie gehen Sie mit Sitzungen in einer staatenlosen Umgebung (z. B. API) um?Apr 24, 2025 am 12:12 AM

Das Verwalten von Sitzungen in staatenlosen Umgebungen wie APIs kann durch Verwendung von JWT oder Cookies erreicht werden. 1. JWT ist für Staatenlosigkeit und Skalierbarkeit geeignet, aber es ist groß, wenn es um Big Data geht. 2. Kookies sind traditioneller und einfacher zu implementieren, müssen jedoch mit Vorsicht konfiguriert werden, um die Sicherheit zu gewährleisten.

Wie können Sie vor SPRECTS-Angriffen (XSS) schützen?Wie können Sie vor SPRECTS-Angriffen (XSS) schützen?Apr 23, 2025 am 12:16 AM

Um die Anwendung vor Sitzungsangriffen im Zusammenhang mit den Sitzungen zu schützen, sind folgende Maßnahmen erforderlich: 1. Stellen Sie die HTTPonly- und sicheren Flags ein, um die Sitzungs Cookies zu schützen. 2. Exportcodes für alle Benutzereingaben. 3. Implementieren Sie die Inhaltssicherheitsrichtlinie (CSP), um die Skriptquellen einzuschränken. Durch diese Richtlinien können Sitzungsangriffe im Zusammenhang mit Sitzungen effektiv geschützt und Benutzerdaten sichergestellt werden.

Wie können Sie die PHP -Sitzungsleistung optimieren?Wie können Sie die PHP -Sitzungsleistung optimieren?Apr 23, 2025 am 12:13 AM

Methoden zur Optimierung der PHP -Sitzungsleistung gehören: 1. Start der Verzögerung der Sitzung, 2. Verwenden Sie Datenbank zum Speichern von Sitzungen, 3. Kompress -Sitzungsdaten, 14. Sitzungslebenszyklus verwalten und 5. Sitzungsfreigabe implementieren. Diese Strategien können die Effizienz von Anwendungen in hohen Parallelitätsumgebungen erheblich verbessern.

Wie lautet die Konfigurationseinstellung von Session.gc_maxlifetime?Wie lautet die Konfigurationseinstellung von Session.gc_maxlifetime?Apr 23, 2025 am 12:10 AM

Thesession.gc_maxlifetimesettingInphpdeterminesthelifspanofSessionData, setInseconds.1) ItsconfiguredInphp.iniorviaini_Set (). 2) AbalanceIsneedToAvoidPerformanceSandunexexwortedyg -Probablogouts

Wie konfigurieren Sie den Sitzungsnamen in PHP?Wie konfigurieren Sie den Sitzungsnamen in PHP?Apr 23, 2025 am 12:08 AM

In PHP können Sie die Funktion Session_name () verwenden, um den Sitzungsnamen zu konfigurieren. Die spezifischen Schritte sind wie folgt: 1. Verwenden Sie die Funktion Session_name (), um den Sitzungsnamen wie Session_name ("my_Session") festzulegen. 2. Nachdem Sie den Sitzungsnamen festgelegt haben, call Session_start (), um die Sitzung zu starten. Das Konfigurieren von Sitzungsnamen kann Sitzungsdatenkonflikte zwischen mehreren Anwendungen vermeiden und die Sicherheit verbessern, aber auf die Einzigartigkeit, Sicherheit, Länge und Festlegen des Zeitpunkts der Sitzungsnamen achten.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.