Suchen Sie die Komponente nach dem Anzeigenamen, wenn die Komponente statusfrei funktional ist, mit Enzyme

8

Ich habe folgende Komponenten:

%Vor%

Und ich möchte einen Test einrichten, um zu sehen, ob die App -Komponente eine Hello -Komponente enthält. Ich habe Folgendes versucht, indem ich Tape und Enzyme :

%Vor%

Aber das Ergebnis war, dass die length -Eigenschaft des find -Ergebnisses gleich 0 war, als ich erwartet hatte, dass sie gleich 1 ist. Also, wie finde ich meine Hello Komponente?

    
Marcus Vinícius Monteiro 14.02.2016, 16:00
quelle

1 Antwort

12

Es gibt ein paar Dinge, die Sie in diesem Fall tun können. Enzyme können Komponentenkonstruktoren basierend auf den statischen .displayName - oder .name -Eigenschaften des Konstruktors oder durch referenzielle Gleichheit abgleichen. Daher sollten die folgenden Ansätze funktionieren:

Direktverweis

Sie können die tatsächlichen Komponenten in Ihre Tests importieren und sie mithilfe direkter Referenzen auf die Komponente finden:

%Vor%

Benannte Funktionsausdrücke

Wenn Sie benannte Funktionsausdrücke zum Erstellen Ihrer zustandslosen funktionalen Komponenten verwenden, sollten die Namen weiterhin funktionieren.

%Vor%

Statisch .displayName Eigenschaft

Sie können den Komponenten eine statische Eigenschaft .displayName hinzufügen:

%Vor%     
Leland Richardson 14.02.2016, 17:06
quelle