私はユニットテストを非常にシンプルで簡単に続けるのが好きです。私はしばしば、テストしているコードを繰り返さないように、テスト結果をハードコードします。また、データ駆動型テストを使用することがよくあります。たとえば、日付/時刻が表示される形式をテストしている場合、予想される文字列をハードコードすることがあります。 「1/1/2000」または「1:00 PM」となります。ただし、日付と時刻の形式はカルチャ固有でアプリケーションはローカライズ可能なので、実際の出力は異なる可能性があります。しかし、私のチームは米国に拠点を置いているので、これは通常問題ではありません。私たちの継続的な統合および構築サーバーは、米国の文化情報とともに実行されます。単体テストの日付と時刻の書式設定で期待される結果をハードコードするのは適切ですか?
チームのメンバーが、自分の開発マシンで日付形式を変更して手動で他の日付形式をテストしたために不満を持ちました。単体テストで出力をテストするときに現在のカルチャ情報を使用しているか、このハードコーディングが受け入れられていますか?
更新:特定のテストで特定のロケールを設定しました。
+1繰り返し試験の場合。 「あなたは現在の文化情報を使用しているはずです。入出力について心配されていないテストに対しては、期待されるカルチャーを設定し、異なるカルチャーの解析/フォーマットを検証するために複数のカルチャーに分かれたテストを行うことを検討してください。 –
@AlexeiLevenkovフェア十分です。私は少し一般的な私の応答を作った:) –