我正在编写使用字符串比较的单元测试,以确保操作成功。我正在使用的字符串使用许多需要转义的字符进行编码。遍历每个字符串并手动添加转义字符是一项耗时的操作。有没有更方便的方法来处理这些类型的字符串?我想象一些C#功能,例如EscapeAll()
,但我还没找到。
以下是需要大量转义的字符串示例:
<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>";
我想也许我可以将字符串保存到文件中,并将文件读入字符串变量,然后我可以使用它来Assert。但另一方面,我不想隐藏文件中的字符串内容。能够直接读取包含测试夹具的* .cs文件中的字符串内容要好得多。我可能要求太多了?
答案 0 :(得分:1)
通过每个字符串并且这是一个耗时的操作 手动添加转义字符。
您可以使用详细字符串
@"This is a ""verbose"" string"
双引号(""
)是在详细字符串中转义双引号("
)的方法。您可以
使用IDE的“替换”工具用双引号替换原始字符串中的这些。
答案 1 :(得分:1)
在Visual Studio中,您可以转到项目属性页面上的“资源”选项卡并添加字符串资源。该页面允许您为字符串指定名称,值和注释。只需将其按原样粘贴到值列中即可。然后在您的代码中,您可以将其称为Resources.MyStringName。作为奖励,将鼠标悬停在代码中会弹出字符串的值(在弹出窗口中,长字符串会被截断)。
答案 2 :(得分:0)
使用原始字符串:
@"string with
embedded new line";
答案 3 :(得分:0)
即使使用冗长的字符串,您也必须将引号加倍。最简单的方法是创建一个单独的控制台应用程序,该应用程序直接从标准输入或从可以粘贴字符串的文件中获取输入,然后以转义形式将其吐出
.Replace("\\", "\\\\").Replace("\"", "\\\"");
会做