文字列操作のエッジケースを探しています。何をテストする必要がありますか?
-
22-07-2019 - |
質問
ロープの最終段階( String
のよりスケーラブルなバージョン)の実装に到達しています。明らかに、可能な限り、すべての操作で String
の操作と同じ結果が得られるようにします。
通常の操作でこれを行うのは非常に簡単ですが、カルチャに依存する操作を正しく実装するのが心配です。特に私が知っているのは2つの言語のみであり、どちらの場合も文化に敏感な操作は通常の操作とまったく同じように動作します!
では、テストを行い、自分が正しいことをしているという自信を得ることができる特定のことはありますか?たとえば、ßについて知っています。ドイツ語のケースを無視する場合、SSと等しい。トルコ語のドット付きおよびドットなしのiについて。
解決
サロゲートペア(サポートする予定がある場合)-無効な組み合わせ(1つの一部のみなど)。
エンコードとデコードを行う場合は、デコードするバイナリデータのブロックが任意に与えられ、文字の途中で終了し、残りの半分が次の文字に来ることに対処するのに十分な状態を保持するようにしてください。 / p>
他のヒント
トルコ語テストは私が知っている中で最高です:)
Stringメソッドの実装を模倣し、コアライブラリを使用してこれを行う必要があります。すべての文化のあらゆる可能性を考慮することは非常に困難です。ホイールを再発明する代わりに、Stringメソッドでリフレクターを使用して、内部呼び出しを確認します。たとえば、String.CompareはCultureInfo.CurrentCulture.CompareInfo.Compareを使用して、現在のカルチャの2つの文字列を比較します。
所属していません StackOverflow