String-Vergleichs-Assertion fehlschlagen, wenn es so aussieht, dass es passieren sollte
-
21-12-2019 - |
Frage
Ich habe einen Test, um zu überprüfen, ob ein Element korrekt serialisiert ist
generasacodicetagpre.Ich erhalte jedoch den folgenden Fehler beim Testfehler
generasacodicetagpre.Es gibt eindeutig etwas Besonderes, das JSON.NET mit der Zeichenfolge tut, aber ich kann nicht herausfinden, was.
komisch ist das passiert
generasacodicetagpre.Ich denke, es ist keine große Sache, aber ich würde gerne wissen, warum.
Lösung
Ich habe gerade getestet und der Wert von result
ist:
{"Vorname": "Vorname", "Nachname": "Nachname", "GUID": "ABCDEFGHIJK", "ID": 0}
was natürlich gegen Ihre erwartete Zeichenfolge ausfällt:
"{{\" vorname \ ": {" vorname \ ", \" Nachname \ ": \" Nachname \ ", \" GUID \ ": \" abcdefghijk \ "}}}"
Verwenden von doppelten geschweiften Klammern ist eine Escape-Sequenz nur für Format-Saiten, die in der generakoditicetagcode-Methode verwendet werden, so dass Sie eine einzelne -Trace enthalten können. Von der Composite-Formatierung MSDN-Seite :
Öffnungs- und Schließkriege werden als starten und enden a interpretiert Element formatieren. Daher müssen Sie eine Escape-Sequenz verwenden, um anzuzeigen eine buchstäbliche Eröffnungsklammer oder eine schließende Klammer. Geben Sie zwei öffnende Zahnspangen an ("{{{") im festen Text, um eine Eröffnungsspange ("{") oder zwei anzuzeigen Schluss-Zahnspangen ("}}"), um eine Abschlussstrebe anzuzeigen ("}").
Wenn Sie nicht generationstabeditagagcode verwenden, wird die doppelte Klammer buchstäblich als zwei Zahnspangen als der c # -Ditifikation 2.4.4.5 Da es sich nicht um ein Escape-Zeichen für String-Literale handelt.
Die resultierende Fehlermeldung ist verwirrend. Ich bin mir nicht sicher, ob dies daran liegt, wie der Debugger es an der GUI meldet, oder ein Fehler, mit dem sie ihre Fehlermeldung formatiert (vielleicht sind sie übermäßig aggressive Eck-Zahnspange für die Ausgabe) oder was.
Wenn Sie Ihren Test ändern, um zu sein:
generasacodicetagpre.Dann wird ich den Verdächtigen passieren. Dies wird mit dem zusätzlichen Test mit dem generationspflichtigen Test mit dem generationspflichtigen Anruf gesichert, der Ihre doppelten Klammern an einzelne Zahnspangen ändert. Wenn Sie jetzt doppeltes Umhüllungsspaltstreifen um Ihren JSON haben, ist das ein weiteres Thema ganz, aber ich vermute, dass dies nicht Ihre Absicht ist.