2016-06-28 21 views
2

Konkret: Ich möchte eine "removeWhitespace" in einerWie füge ich ein benutzerdefiniertes expect-chain Element hinzu?

expect.element('...').text.to.equal('...')

Kette einzufügen. So wird es wie folgt aussehen:

expect.element('...').text.removeWhitespace.to.equal(...)

Grund: Ich möchte nicht über jede Menge und Art von Leerzeichen in der Behauptung kümmern, ich will nur Briefe vergleichen.

Allgemeiner: Ich möchte ein benutzerdefiniertes Element zu einer Expect-Kette hinzufügen, um die Daten zu bearbeiten, die ich in der Assertion behandle. Oder mit anderen Worten: Ich möchte meine eigenen Erwartungskettenelemente wie möglich mit benutzerdefinierten Assertions definieren und registrieren. Wie mache ich das?

Antwort

0

Aber Sie brauchen keine benutzerdefinierte hinzufügen erwarten eine Funktion fügen Sie die Zeichenfolge wie folgt zu wickeln:

expect.element(removeWhiteSpaces('...')).text.to.equal('...') 

function removeWhiteSpaces(string){ 
    return string.trim(); 
} 

können Sie verwenden, was Funktion, die Sie wollen, dass es Javascript ist! du bist frei. Parsen Sie die Zeichenfolge zuerst.

Aber wenn Sie eine benutzerdefinierte Behauptung an den Nachtschwärmer-Führer here

+1

Nun gehen hinzufügen müssen, ist das Leerzeichen aus der Kennung des Elements zu entfernen (so etwas wie „@myElement“), aber nicht aus dem HTML-Inhalt des Elements selbst . Das Beispiel oben sagte: "Holen Sie den Inhalt (d. H." Text ") eines Elements, entfernen Sie alle Leerzeichen und vergleichen Sie es mit etwas [,,,] um gleich zu sein." – SiphonariusRatingensis

+0

Das Hinzufügen von benutzerdefinierten Assertionen ist ziemlich klar, aber ich möchte das asser ... Muster nicht verwenden, ich möchte das expect ... Muster verwenden. afaik, sie können nicht in einer Linie durcheinander gebracht werden, oder? – SiphonariusRatingensis

Verwandte Themen