Jasmin Logik erwarten (expect A ODER B)
Ich brauche, um den test erfolgreich zu sein, wenn eine der beiden Erwartungen ist erfüllt:
expect(mySpy.mostRecentCall.args[0]).toEqual(jasmine.any(Number));
expect(mySpy.mostRecentCall.args[0]).toEqual(false);
Ich erwartet, dass es so Aussehen:
expect(mySpy.mostRecentCall.args[0]).toEqual(jasmine.any(Number)).or.toEqual(false);
Ist es etwas, was ich verpasst in den docs oder muss ich das schreiben meiner eigenen matcher?
- Ich habe in der Dokumentation und ich habe versucht, einige code, aber ich denke, wir können das nicht "einfach" sorry. Aber nach dem, was ich gefunden haben, können Sie erstellen Sie Ihre eigenen "verkettbare" matcher.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweis: Diese Lösung enthält die syntax für die Versionen vor der Jasmin-v2.0.
Weitere Informationen zu benutzerdefinierten Matcher nun, sehen Sie: https://jasmine.github.io/2.0/custom_matcher.html
Matchers.js arbeitet mit einem einzigen "Ergebnis Modifikator" nur -
not
:core/Spec.js:
core/Matchers.js:
So sieht es aus, wie Sie tatsächlich benötigen, schreiben Sie Ihre eigene matcher (innerhalb einer
before
oderit
bloc für die richtigethis
). Zum Beispiel:jasmine.any(Number)
Fall, aber ich kann arbeiten it out. Ich lege es in deine Antwort mal herausgefunden, wenn Sie nicht mind.Fügen Sie mehrere vergleichbare strings in ein array und dann vergleichen. Die Reihenfolge des Vergleichs.
expect( Status == "New" || Status == "In Progress").toBe(true);
Dies ist eine alte Frage, aber falls jemand noch auf der Suche, habe ich eine andere Antwort.
Wie über den Bau der logischen ODER-Ausdruck, und nur erwarten dass? Wie diese:
Diese Weise können Sie testen Sie explizit/erwarten, dass die ODER-Bedingung, und Sie brauchen nur zu verwenden, Jasmin testen, ein Boolean match/mismatch. Arbeiten in Jasmin 1 oder Jasmin 2 🙂