今日、この問題に直面しています。なぜこのテストが失敗するのか(文化によって異なります)誰かが考えているのだろうかと思います。目的は、テストテキストに隣り合う2つのスペースが含まれているかどうかを確認することです。これはstring.IndexOf
に従っています(文字列に2つのスペースがすべて隣り合うように置き換えても同じです)。いくつかのテストの後では、\xAD
が何とかこの問題を引き起こしているようです。string IndexOfとReplace
public class ReplaceIndexOfSymmetryTest
{
[Test]
public void IndexOfShouldNotFindReplacedString()
{
string testText = "\x61\x20\xAD\x20\x62";
const string TWO_SPACES = " ";
const string ONE_SPACE = " ";
string result = testText.Replace(TWO_SPACES, ONE_SPACE);
Assert.IsTrue(result.IndexOf(TWO_SPACES) < 0);
}
}
これはあなたの問題になるかどうかはわかりませんが、このテストで3つのスペースが隣り合っていると、最後に2つずつ隣り合わせになります。 –
私のためにテストは成功します。投稿したコードが、テストしていたコードと同じであることを確認してください。 –
問題は 'IndexOf'がカルチャ固有検索を使用し、' Replace'が序数検索を使用するという問題です。 @Chris:ポイントは失敗するということです。 –