Einheitentests zu einer virtuellen Oracle JET-DOM-App hinzufügen
Einführung
Tests sind ein wichtiger Teil des Entwicklungslebenszyklus und stellen die Erstellung robuster und stabiler Web-Apps sicher. Es gibt verschiedene Arten von Tests, wie End-to-End-Tests und Integrationstests. Unit Testing beinhaltet das Schreiben von Tests für einzelne Codeeinheiten, einschließlich Klassen, Funktionen oder Methoden. Es ist gut, schon früh im Entwicklungsprozess Unit-Tests zu schreiben. Der frühe Start zeigt nicht nur die Wichtigkeit von Tests, sondern erhöht auch die Wahrscheinlichkeit, eine vollständige Testabdeckung zu erreichen, anstatt zu warten, bis die Web-App voll funktionsfähig und komplex ist.
Ziele
In diesem Tutorial erfahren Sie, wie Sie Testtools mit dem Oracle JET-CLI-Befehl Test hinzufügen installieren und wie Sie einen Unit-Test in der virtuellen Oracle JET-DOM-App schreiben und ausführen.
Der Befehl add testing installiert Jest und die Preact Testing Library. Außerdem wird der Abschnitt scripts der package.json-Datei Ihrer App mit Befehlen aktualisiert, um die Unit-Tests auszuführen, die Sie schreiben.
Hinweis: Verwenden Sie Jest nicht zum Testen oder Interagieren mit den Oracle JET-UI-Komponenten in Ihrer App. Das Oracle JET-Team hat diese Komponenten im Rahmen des Entwicklungsprozesses der Komponenten ausführlich getestet. Verwenden Sie stattdessen Jest, um Einheitentests für Code zu schreiben, den Sie in Ihrer App schreiben. Um automatisierte UI-Tests für die von Ihnen entwickelte virtuelle Oracle JET-DOM-App durchzuführen, verwenden Sie unsere UI-Automatisierungsbibliothek (
@oracle/oraclejet-webdriver) der Oracle JET-Komponente WebElements. Diese Bibliothek, die auf Selenium WebDriver basiert, ist für die Arbeit mit JET-Komponenten konzipiert. Informationen zu den ersten Schritten finden Sie unter Umgebung zum Erstellen von UI-Automatisierungstests für Oracle JET-Webanwendungen einrichten.
Voraussetzungen
- Eine Entwicklungsumgebung zum Erstellen virtueller Oracle JET-DOM-Apps, die eine Installation von Node.js umfasst
- Abschluss des vorherigen Tutorials in diesem Lernpfad, Oracle JET Virtual DOM-App debuggen
Aufgabe 1: Testbibliotheken hinzufügen
-
Navigieren Sie zum Ordner
JET-Virtual-DOM-app, und fügen Sie die Testbibliotheken hinzu.npx ojet add testingDas Oracle JET-Tooling erstellt einen Ordner
test-configim OrdnerJET-Virtual-DOM-appmit den Konfigurationsdateien, die für die Testbibliotheken erforderlich sind:./JET-Virtual-DOM-app/test-config jest.config.js testSetup.tsAußerdem wird die Datei
package.jsonmit den Testtools aktualisiert, die der Befehladd testinginstalliert. Diese Updates umfassen Einträge für Jest und die Preact Testing Library.. . . "devDependencies": { . . . "@oracle/oraclejet-jest-preset": "16.0.11", "@testing-library/preact": "3.2.3", "@types/jest": "29.5.3", . . . "jest": "29.6.2", "jest-environment-jsdom": "29.6.2", . . . },Schließlich wird der Abschnitt
scriptsin der Dateipackage.jsonmit Befehlen aktualisiert, um die Testbibliothek aufzurufen.. . . "scripts": { . . . "test": "jest -c test-config/jest.config.js", "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand" },
Aufgabe 2: Einheitentests erstellen
-
Navigieren Sie zum Ordner
JET-Virtual-DOM-app/src/components/content, und erstellen Sie einen neuen Ordner mit dem Namen__tests__. -
Erstellen Sie im neu erstellten Ordner
JET-Virtual-DOM-app/src/components/content/__tests__eine Testskriptdatei namenscontent.spec.tsx. -
Schreiben Sie in der Datei
content.spec.tsxEinträge, die auf das Vorhandensein der ZeichenfolgeProduct Informationin der DateiJET-Virtual-DOM-app/src/components/contenttesten. Der Test erwartet auch, dass diese Zeichenfolge in ein Element-TagH1eingeschlossen wird.import { h } from "preact"; import { render } from "@testing-library/preact"; import { Content } from "../index"; test("renders Product Information header with a h1 heading", () => { const { getByText } = render(<Content />); const headerElement = getByText("Product Information"); expect(headerElement.tagName).toBe("H1"); });Die fertiggestellte Testskriptdatei
content.spec.tsxverwendet auchjest.mock-Aufrufe, um Zugriff auf die Importe (store_data.jsonundojs/ojmutablearraydataprovider) zu gewähren, die eine Instanz der Inhaltskomponente benötigt. Informationen zum Einschließen dieserjest.mock-Aufrufe in die Testskriptdatei finden Sie unter content-spec-tsx.txt.
Aufgabe 3: Einheitentest ausführen
Navigieren Sie im Terminalfenster zum Verzeichnis JET-Virtual-DOM-app, und führen Sie den Unit-Test im Ordner JET-Virtual-DOM-app/src/components/content/__tests__ aus. Führen Sie dazu den folgenden Befehl aus.
npm test
Der Test wird ausgeführt und zeigt die Konsolenausgabe ähnlich der folgenden an.
$ npm test
> JET-Virtual-DOM-app@1.0.0 test
> jest -c test-config/jest.config.js
PASS src/components/content/__tests__/content.spec.tsx
Test suite for Content component
√ Renders Product Information header with a H1 tag (14 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 2.145 s
Ran all test suites.
Nächsten Schritt
Fahren Sie mit dem nächsten Tutorial in diesem Modul fort.
Dieses Tutorial ist Teil des Moduls Ihre erste Oracle JET Virtual DOM-App.
- Virtuelle Oracle JET-DOM-App mit einer Startvorlage erstellen
- Komponenten zu einer Oracle JET Virtual DOM-App hinzufügen
- Data Bind einer Komponente in einer Oracle JET Virtual DOM-App
- Oracle JET Virtual DOM-App debuggen
- Unit-Tests zu einer Oracle JET Virtual DOM-App hinzufügen
- Bereitstellen einer Oracle JET Virtual DOM-App vorbereiten
Sie können zur Hauptseite des virtuellen DOM-Lernpfads zurückkehren, um auf alle Module zum Erstellen virtueller DOM-Apps zuzugreifen.
Weitere Lernressourcen
Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Add unit tests to an Oracle JET virtual DOM app
G40605-01