2017-12-14 40 views
-1

Ich schreibe Komponententests, die Zeichenfolgenvergleiche verwenden, um zu bestätigen, dass Operationen erfolgreich sind. Die Zeichenfolgen, mit denen ich arbeite, sind mit vielen Zeichen codiert, die es zu umgehen gilt. Es ist eine zeitaufwändige Operation, jede Zeichenfolge zu durchlaufen und manuell Escape-Zeichen hinzuzufügen. Gibt es eine bequemere Möglichkeit, diese Arten von Strings zu behandeln? Ich stelle mir ein C# -Feature wie EscapeAll() vor, aber ich habe keines gefunden. HierWie geht man mit Strings um, die eine große Anzahl von Escape-Zeichen haben?

ist ein Beispiel für eine Zeichenfolge, die eine enorme Menge an Entkommen erfordert:

<td class="name"><span id="153407 - 951"></span><a href="/statfeed/statfeed.php ? page = mlb/mlbteam & amp; teamid = SAN + FRANCISCO & amp; season = ">951 SAN FRANCISCO GIANTS</a></td><td id="ajaxUpdating - 153407 - 951 - Pitcher" class="pitcher ">(r) cueto, j</td><td class="line">8o20</td><td class="line"><a onclick="openLineMovement('20170630', '335310265', 'MLB'); " href="javascript:; ">8.5o15/8.5/8.5u20</a></td><td id="ajaxUpdating - 153407 - 951 - Current" class="currentline ">8o20</td><td id="ajaxUpdating - 153407 - 951 - Line" class="line ">+1.5(-194)</td><td id="ajaxUpdating - 153407 - 951" class="score finalscore"><span id="ajaxUpdating - 153407 - 951 - score" class="score first">13</span><span id="ajaxUpdating - 153407 - 951 - progress" class="score progress">Over 8</span></td>"; 

Ich dachte, vielleicht könnte ich die Zeichenfolge in eine Datei speichern und lesen Sie die Datei in ein String-Variable, die ich könnte dann verwenden, um gegen zu behaupten. Auf der anderen Seite möchte ich den String-Inhalt in einer Datei nicht verbergen. Es ist viel besser, den String-Inhalt in der * .cs-Datei, die das Test-Fixture enthält, direkt lesen zu können. Ich könnte zu viel verlangen?

+0

Ich sehe keine Escape-Zeichen in dem, was Sie gepostet haben '/' ist kein Escape-Zeichen .. eine einzelne '" \ "' jedoch ist – MethodMan

Antwort

1

In Visual Studio können Sie auf der Seite Projekteigenschaften zur Registerkarte Ressourcen wechseln und Zeichenfolgenressourcen hinzufügen. Auf der Seite können Sie der Zeichenfolge einen Namen, einen Wert und einen Kommentar zuweisen. Fügen Sie es einfach in die Wertspalte ein. Dann können Sie in Ihrem Code auf Resources.MyStringName verweisen. Als zusätzlichen Vorteil wird der Wert der Zeichenkette angezeigt, wenn Sie den Mauszeiger darüber bewegen (lange Strings werden im Popup abgeschnitten).

0

Verwenden rohe Strings:

@"string with 
embedded new line"; 
1

Es ist ein zeitraubender Vorgang durch jede Saite zu gehen und manuell Escape-Zeichen hinzufügen.

können Sie die ausführliche Strings verwenden

@"This is a ""verbose"" string" 

Die Doppel doppelte Anführungszeichen ("") sind die Art und Weise doppelte Anführungszeichen (") im ausführlichen Strings zu entkommen. Sie können ersetzen Sie diese aus der ursprünglichen Zeichenfolge mit doppelten Anführungszeichen mit dem "Ersetzen" -Tool Ihrer IDE.

0

gut sogar mit den ausführlichen Strings müssen Sie die Anführungszeichen verdoppeln. Der einfachste Weg ist eine separate Konsole-Anwendung zu machen, die Eingabe entweder direkt von der Standardeingabe oder aus einer Datei führt, wo Sie die Zeichenfolge in und dann ausspucken in entkam Form

einfügen können
.Replace("\\", "\\\\").Replace("\"", "\\\""); 

tut

Verwandte Themen