Heim Web-Frontend js-Tutorial So verwenden Sie Jest, um reagierende native Komponenten im Projekt zu testen

So verwenden Sie Jest, um reagierende native Komponenten im Projekt zu testen

Feb 11, 2018 am 09:36 AM
jest react 使用

Es gibt derzeit viele Javascript-Testtools, aber für die React-Teststrategie ist das von Facebook gestartete Standardtesttool für ReactJs die offizielle Website-Adresse von Jest.Jest: https://facebook.github.io/jest/. Wir können sehen, dass die offizielle Website von Jest behauptet: Schmerzloses JavaScript-Testen. Ist Facebooks JavaScript-Unit-Test-Framework zum Testen von Diensten und React-Anwendungen. In diesem Artikel wird hauptsächlich die Verwendung von Jest zum Testen nativer Reaktionskomponenten im Projekt als Referenz für alle vorgestellt.

Der sogenannte Unit-Test dient dazu, jede Einheit zu testen. Im Volksmund wird er im Allgemeinen auf Funktionen, Klassen oder einzelne Komponenten abgezielt und bezieht sich nicht auf Systeme und Integration. Unit-Tests sind der grundlegende Test des Softwaretests. Jest verfügt hauptsächlich über die folgenden Funktionen:

  1. Anpassbarkeit: Jest ist modular, erweiterbar und konfigurierbar.

  2. Sandbox und schnell: Jest virtualisiert die JavaScript-Umgebung, kann den Browser simulieren und parallel ausführen

  3. Snapshot-Test: Jest kann schnell schreiben Tests an Snapshots oder anderen serialisierten Werten des React-Baums, um eine schnell aktualisierte Benutzererfahrung bereitzustellen.

  4. Unterstützt asynchrone Codetests: Unterstützt Versprechen und Async/Await

  5. Generiert automatisch statische Analyseergebnisse: Zeigt nicht nur Ergebnisse der Testfallausführung an, sondern auch auch Anweisungs-, Zweig-, Funktions- usw. Abdeckung.

Warum Unit-Test-Tools verwenden

Während des Entwicklungsprozesses können wir immer noch unseren eigenen Code für Unit-Tests schreiben, ohne Test-Tools zu verwenden, aber Während des Testprozesses möchten wir die Einheit relativ unabhängig machen und normal ausführen. Wir müssen die abhängigen Funktionen und die Umgebung der zu testenden Funktion verspotten und die Testdateneingabe und -ausführung durchführen Es gibt viele Ähnlichkeiten bei der Überprüfung von Testergebnissen, und Testtools bieten uns in diesen Aspekten Komfort.

Vorbereitungsphase

Ein rn-Projekt ist erforderlich. Was hier gezeigt wird, ist mein persönliches Projekt ReactNative-ReduxSaga-TODO

Jest installieren

Wenn Sie das rn-Projekt über die React-Native-Init-Befehlszeile erstellt haben und Ihre rn-Version höher als 0.38 ist, besteht keine Notwendigkeit, es zu installieren. Wenn Sie sich nicht sicher sind, prüfen Sie, ob die Datei

package.json den folgenden Code enthält:


 // package.json
 "scripts": {
  "test": "jest"
 },
 "jest": {
  "preset": "react-native"
 }
Nach dem Login kopieren

Wenn nicht, installieren Sie npm Ich scherze --save-dev und füge den obigen Code an der entsprechenden Stelle der Datei package.json hinzu.

Nachdem die oben genannten Schritte abgeschlossen sind, führen Sie einfach npm run test aus, um zu testen, ob Jest erfolgreich konfiguriert wurde. Aber wir haben keinen Testfall geschrieben und das Terminal gibt aus, dass keine Tests gefunden wurden. Die Konfiguration ist nun abgeschlossen.

Snapshot-Test

Eine Komponente schreiben


import React from 'react';
import {
 Text, View,
} from 'react-native';

import PropTypes from 'prop-types';

const PostArea = ({ title, text, color }) => (
 <View style={{ backgroundColor: &#39;#ddd&#39;, height: 100 }}>
  <Text style={{ fontSize: 30 }}>{title}</Text>
  <Text style={{ fontSize: 15, color }}>{text}</Text>
 </View>
);

export default PostArea;
Nach dem Login kopieren

Gefunden im Stammverzeichnis des Projekts __test__-Ordner. Lassen Sie uns nun den Test-Renderer von React und die Snapshot-Funktionalität von Jest verwenden, um mit der Komponente zu interagieren, die gerenderte Ausgabe zu erfassen und eine Snapshot-Datei zu erstellen.


// PostArea_test.js
import &#39;react-native&#39;;
import React from &#39;react&#39;;
import PostArea from &#39;../js/Twitter/PostArea&#39;;

import renderer from &#39;react-test-renderer&#39;;

test(&#39;renders correctly&#39;, () => {
 const tree = renderer.create(<PostArea title="title" text="text" color="red" />).toJSON();
 expect(tree).toMatchSnapshot();
});
Nach dem Login kopieren

Führen Sie dann npm run test oder jest im Terminal aus. Gibt aus:

PASS __tests__PostArea_test.js (6.657s)
√ wird korrekt gerendert (5553ms)

› 1 Snapshot geschrieben.
Snapshot-Zusammenfassung
› 1 Snapshot in 1 Testsuite geschrieben.

Testsuiten: 1 bestanden, 1 insgesamt
Tests: 1 bestanden, 1 insgesamt
Snapshots: 1 hinzugefügt, 1 insgesamt
Zeit: 8,198 Sekunden 🎜> Alle Testsuiten ausgeführt.

Gleichzeitig wird eine Datei im Testordner ausgegeben, bei der es sich um den generierten Snapshot handelt.


// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`renders correctly 1`] = `
<View
 style={
  Object {
   "backgroundColor": "#ddd",
   "height": 100,
  }
 }
>
 <Text
  accessible={true}
  allowFontScaling={true}
  disabled={false}
  ellipsizeMode="tail"
  style={
   Object {
    "fontSize": 30,
   }
  }
 >
  title
 </Text>
 <Text
  accessible={true}
  allowFontScaling={true}
  disabled={false}
  ellipsizeMode="tail"
  style={
   Object {
    "color": "red",
    "fontSize": 15,
   }
  }
 >
  text
 </Text>
</View>
`;
Nach dem Login kopieren

Ändern Sie die Quelldatei

Wenn Sie den Test das nächste Mal ausführen, stimmt die gerenderte Ausgabe mit der zuvor erstellten überein Snapshot Vergleichen. Snapshots sollten zusammen mit dem Code eingereicht werden. Wenn ein Snapshot-Test fehlschlägt, muss er auf absichtliche oder unbeabsichtigte Änderungen überprüft werden. Wenn die Änderungen wie erwartet sind, rufen Sie jest -u auf, um den aktuellen Snapshot zu überschreiben.

Ändern wir den ursprünglichen Code: Ändern Sie die Schriftgröße der zweiten Zeile


<Text style={{ fontSize: 14, color }}>{text}</Text>
Nach dem Login kopieren
Zu diesem Zeitpunkt haben wir Machen Sie noch einmal einen Scherz. Zu diesem Zeitpunkt gibt das Terminal einen Fehler aus und weist auf die Fehlerstelle hin


Da dieser Code von uns absichtlich geändert wurde, führen Sie zu diesem Zeitpunkt jest -u aus und einen Schnappschuss machen ist abgedeckt. Wenn Sie jest erneut ausführen, wird kein Fehler gemeldet~

Verwandte Empfehlungen:


Reagieren Sie auf die native benutzerdefinierte Komponente, um den Effekt der Schubladenmenüsteuerung zu implementieren

Über die Kommunikation zwischen React Native und Webview

Detaillierte Erläuterung der Verpackung der vertikalen Karussellkomponente von React Native

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Jest, um reagierende native Komponenten im Projekt zu testen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

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

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1664
14
PHP-Tutorial
1266
29
C#-Tutorial
1239
24
BTCC-Tutorial: Wie kann ich die MetaMask-Wallet an der BTCC-Börse binden und verwenden? BTCC-Tutorial: Wie kann ich die MetaMask-Wallet an der BTCC-Börse binden und verwenden? Apr 26, 2024 am 09:40 AM

MetaMask (auf Chinesisch auch Little Fox Wallet genannt) ist eine kostenlose und beliebte Verschlüsselungs-Wallet-Software. Derzeit unterstützt BTCC die Bindung an die MetaMask-Wallet. Nach der Bindung können Sie sich mit der MetaMask-Wallet schnell anmelden, Werte speichern, Münzen kaufen usw. und bei der erstmaligen Bindung einen Testbonus von 20 USDT erhalten. Im BTCCMetaMask-Wallet-Tutorial stellen wir detailliert vor, wie man MetaMask registriert und verwendet und wie man das Little Fox-Wallet in BTCC bindet und verwendet. Was ist die MetaMask-Wallet? Mit über 30 Millionen Nutzern ist MetaMask Little Fox Wallet heute eines der beliebtesten Kryptowährungs-Wallets. Die Nutzung ist kostenlos und kann als Erweiterung im Netzwerk installiert werden

So verwenden Sie NetEase Mailbox Master So verwenden Sie NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox ist eine von chinesischen Internetnutzern weit verbreitete E-Mail-Adresse und hat mit seinen stabilen und effizienten Diensten schon immer das Vertrauen der Benutzer gewonnen. NetEase Mailbox Master ist eine E-Mail-Software, die speziell für Mobiltelefonbenutzer entwickelt wurde. Sie vereinfacht das Senden und Empfangen von E-Mails erheblich und macht unsere E-Mail-Verarbeitung komfortabler. Wie Sie NetEase Mailbox Master verwenden und welche spezifischen Funktionen es bietet, wird Ihnen der Herausgeber dieser Website im Folgenden ausführlich vorstellen und hofft, Ihnen weiterzuhelfen! Zunächst können Sie die NetEase Mailbox Master-App im Mobile App Store suchen und herunterladen. Suchen Sie im App Store oder im Baidu Mobile Assistant nach „NetEase Mailbox Master“ und befolgen Sie dann die Anweisungen zur Installation. Nachdem der Download und die Installation abgeschlossen sind, öffnen wir das NetEase-E-Mail-Konto und melden uns an. Die Anmeldeschnittstelle ist wie unten dargestellt

So verwenden Sie die Baidu Netdisk-App So verwenden Sie die Baidu Netdisk-App Mar 27, 2024 pm 06:46 PM

Cloud-Speicher sind heutzutage aus unserem täglichen Leben und Arbeiten nicht mehr wegzudenken. Als einer der führenden Cloud-Speicherdienste in China hat Baidu Netdisk mit seinen leistungsstarken Speicherfunktionen, der effizienten Übertragungsgeschwindigkeit und dem komfortablen Bedienerlebnis die Gunst einer großen Anzahl von Benutzern gewonnen. Und egal, ob Sie wichtige Dateien sichern, Informationen teilen, Videos online ansehen oder Musik hören möchten, Baidu Cloud Disk kann Ihre Anforderungen erfüllen. Viele Benutzer verstehen jedoch möglicherweise nicht die spezifische Verwendung der Baidu Netdisk-App. Dieses Tutorial führt Sie daher im Detail in die Verwendung der Baidu Netdisk-App ein. Wenn Sie immer noch verwirrt sind, folgen Sie bitte diesem Artikel, um mehr im Detail zu erfahren. So verwenden Sie Baidu Cloud Network Disk: 1. Installation Wählen Sie beim Herunterladen und Installieren der Baidu Cloud-Software zunächst die benutzerdefinierte Installationsoption aus.

So verwenden Sie die Xiaomi Auto-App So verwenden Sie die Xiaomi Auto-App Apr 01, 2024 pm 09:19 PM

Die Xiaomi-Autosoftware bietet Funktionen zur Fernsteuerung des Fahrzeugs, mit denen Benutzer das Fahrzeug über Mobiltelefone oder Computer fernsteuern können, z. B. das Öffnen und Schließen der Türen und Fenster des Fahrzeugs, das Starten des Motors, die Steuerung der Klimaanlage und des Audios des Fahrzeugs usw. Folgendes ist Lassen Sie uns gemeinsam mehr über die Verwendung und den Inhalt dieser Software erfahren. Umfassende Liste der Funktionen und Nutzungsmethoden der Xiaomi Auto-App. 1. Die Xiaomi Auto-App wurde am 25. März im Apple AppStore gestartet und kann jetzt im App Store auf Android-Telefonen heruntergeladen werden: Erfahren Sie mehr über die wichtigsten Highlights und technischen Parameter von Xiaomi Auto und vereinbaren Sie einen Termin für eine Probefahrt. Konfigurieren und bestellen Sie Ihr Xiaomi-Auto und unterstützen Sie die Online-Abwicklung von Aufgaben zur Autoabholung. 3. Community: Informationen zur Marke Xiaomi Auto verstehen, Autoerfahrungen austauschen und das wundervolle Autoleben teilen: Das Mobiltelefon ist die Fernbedienung, Fernbedienung, Echtzeitsicherheit, einfach

So verwenden Sie Leerzeichen in Go richtig So verwenden Sie Leerzeichen in Go richtig Mar 29, 2024 pm 03:42 PM

Die Go-Sprache ist eine einfache, effiziente und hochgradig parallele Programmiersprache. Es handelt sich um eine von Google entwickelte Open-Source-Sprache. In der Go-Sprache ist die Verwendung von Leerzeichen sehr wichtig, da sie die Lesbarkeit und Wartbarkeit des Codes verbessern kann. In diesem Artikel wird erläutert, wie Leerzeichen in der Go-Sprache korrekt verwendet werden, und es werden spezifische Codebeispiele bereitgestellt. Warum Sie Leerzeichen richtig verwenden müssen Im Programmierprozess ist die Verwendung von Leerzeichen für die Lesbarkeit und Schönheit des Codes sehr wichtig. Durch die richtige Verwendung von Leerzeichen kann der Code klarer und leichter lesbar gemacht und somit reduziert werden

Integration von Java-Framework und Front-End-React-Framework Integration von Java-Framework und Front-End-React-Framework Jun 01, 2024 pm 03:16 PM

Integration von Java-Framework und React-Framework: Schritte: Richten Sie das Back-End-Java-Framework ein. Projektstruktur erstellen. Konfigurieren Sie Build-Tools. Erstellen Sie React-Anwendungen. Schreiben Sie REST-API-Endpunkte. Konfigurieren Sie den Kommunikationsmechanismus. Praxisfall (SpringBoot+React): Java-Code: RESTfulAPI-Controller definieren. Reaktionscode: Rufen Sie die von der API zurückgegebenen Daten ab und zeigen Sie sie an.

Die Definition und Verwendung von Zeichen voller Breite Die Definition und Verwendung von Zeichen voller Breite Mar 25, 2024 pm 03:33 PM

Was sind Zeichen in voller Breite? In Computerkodierungssystemen sind Zeichen doppelter Breite eine Zeichenkodierungsmethode, die zwei Standardzeichenpositionen einnimmt. Dementsprechend wird die Zeichenkodierungsmethode, die eine Standardzeichenposition einnimmt, als Zeichen halber Breite bezeichnet. Zeichen in voller Breite werden normalerweise für die Eingabe, Anzeige und den Druck von chinesischen, japanischen, koreanischen und anderen asiatischen Zeichen verwendet. Bei chinesischen Eingabemethoden und der Textbearbeitung sind die Verwendungsszenarien von Zeichen voller Breite und Zeichen halber Breite unterschiedlich. Verwendung von Zeichen in voller Breite Chinesische Eingabemethode: Bei der chinesischen Eingabemethode werden normalerweise Zeichen in voller Breite verwendet, um chinesische Zeichen einzugeben, z. B. chinesische Schriftzeichen, Symbole usw.

Was ist Bitget Launchpool? Wie verwende ich Bitget Launchpool? Was ist Bitget Launchpool? Wie verwende ich Bitget Launchpool? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool ist eine dynamische Plattform, die für alle Kryptowährungsbegeisterten entwickelt wurde. BitgetLaunchpool zeichnet sich durch sein einzigartiges Angebot aus. Hier können Sie Ihre Token einsetzen, um weitere Belohnungen freizuschalten, darunter Airdrops, hohe Renditen und einen großzügigen Preispool, der nur frühen Teilnehmern vorbehalten ist. Was ist BitgetLaunchpool? BitgetLaunchpool ist eine Kryptowährungsplattform, auf der Token zu benutzerfreundlichen Bedingungen eingesetzt und verdient werden können. Durch die Investition von BGB oder anderen Token in Launchpool haben Benutzer die Möglichkeit, kostenlose Airdrops und Einnahmen zu erhalten und an großzügigen Bonuspools teilzunehmen. Die Einnahmen aus verpfändeten Vermögenswerten werden innerhalb von T+1 Stunden berechnet und die Belohnungen basieren darauf

See all articles