Jasmin: wie überprüfen Sie, dass array ein Objekt enthält?
Diese Prüfung bestanden:
expect(array).toContain(value)
Array:
[
{"_t":"user","id":1073970419,"email":"[email protected]","name":"Spectator"},
{"_t":"user","id":4464992042,"email":"[email protected]","name":"Collaborator"},
{"_t":"user","id":1978569710,"email":"[email protected]","name":"Manage"}
]
Wert:
{"_t":"user","id":1978569710,"email":"[email protected]","name":"Manage"}
Aber nicht mehr geht. Was ist die neue Art zu schreiben den gleichen test?
InformationsquelleAutor hakunin | 2016-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es nicht enthalten , dass Objekt (denken Sie daran, zwei Objekte mit gleichen Eigenschaften sind nicht das gleiche Objekt für die Zwecke der Geschlechter), so
toContain
nie passieren wird.Müssen Sie einen weiteren test, wie
toEqual
oder (wenn Sie nur wollen, um zu überprüfen, für eine Teilmenge der Eigenschaften),toEqual
kombiniert mitJasmin.objectContaining
.Hier ist die
toEqual
Beispiel aus der Jasmin-Dokumentation auf dieser Seite:Hinweis: jetzt
foo
gleichbar
.Hier ist Ihr Beispiel mit
jasmine.objectContaining
:Beachten Sie, wie das Objekt mit mehreren Eigenschaften übereinstimmt, die teilweise Liefergegenstandes zu
jasmine.objectContaining
.Mit allen Mitteln, fügen Sie hinzu, wenn Sie möchten, ich werde genehmigen, die Bearbeiten, wenn Sie es empfehlen. Ich wusste genau, was das problem war, so ging der Suche in der Jasmin-Doku (wow das sind frustrierend, wenn Sie wollen einfach nur eine Liste von Matcher).
Ich habe kopiert, ein paar von den docs in der Antwort.
Ich fand es heraus, neu zu schreiben, meine Skillung, die ich brauchte, um
arrayContaining
.Ich wusste nicht, über
arrayContaining
, als es fehlt von dieser Seite. Nun habe ich es gefunden hier. Ich schlage vor posting eine Antwort mit es, wie es scheint, die bessere Lösung für mich, wenn es anwendbar ist.InformationsquelleAutor T.J. Crowder
Die syntax, die Sie brauchen, ist:
Sehen fiddle: https://jsfiddle.net/bblackwo/4o5u5Lmo/16/
die akzeptierte Antwort nicht explizit zeigen, wie
toContain()
mitjasmine.objectContaining()
war es nur angedeutet. Meine Antwort explizit zeigt, wie Sie mit Ihnen zusammen.Ich habe versucht, diese zu arbeiten, das ist es nicht.
Ich habe gerade ein Turnschuh zeigt ein paar verschiedene Optionen, die Arbeit. Sie könnten versuchen, diese?
InformationsquelleAutor BBlackwo
@T. J. Crowder schon erklärt genau das problem. Nur zu helfen, Sie ein bisschen mehr, wenn Sie anpassen möchten, Ihrem Beispiel müssten Sie so etwas wie dieses:
Das ist merkwürdig. Es geht über den hier. Es ist ein wenig anders, da die beiden Arrays und die variable bezieht sich das gleiche Objekt. Also, in diesem Fall, enthält, sollte das okay sein.
In diesem Sinne, ja, aber ich habe nicht das gleiche Objekt, so dass Ihre Beantwortung nicht mein problem.
InformationsquelleAutor Pedro Vaz