私はJsonMarshall(T t)
というメソッドを持っています。このメソッドはオブジェクトをとり、それをJson Stringに変換します。このメソッド内で、私は、このタスクを達成するためにObjectmapper
を使用しています:今きれいな印刷が可能なJsonMarshallerのユニットテスト方法は?
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(t)
を、私は私のテストのために使っていた属性のタイトルと名前を持つクラスClientName
を持って言うことができます。
テスト失敗:私は2つのシナリオを取得
expectedString = "{\"title\":\"RandomTitle",\"Name\":\"RandomName\"}"
:今、私は私の方法でJSON文字列に
ClientName
を変換し、いくつかに対して、その出力をアサートすることにより、このメソッドをテストしようとしたときのようなJSON文字列を期待しました私の方法でmapper.writerWithDefaultPrettyPrinter().writeValueAsString(t)
を使用したとき。私はmapper.writeValueAsString(t)
を行うので、私はwriterWithDefaultPrettyPrinter()
のインデントがテストの失敗の原因となっていると思うとき
テストは合格します。
最初のシナリオでこのテストに合格する方法はありますか?
これら3つのうち、(2)または(3)のいずれかを選択します。最初の問題の問題は、 "かわいい"文字列の外観が変わる可能性があることです(たとえば、あるバージョンではインデントが3つのスペースになり、新しいバージョンではインデントが4つのスペースに変更されます)属性変更の)、それはあなたの単体テストを破るだろう。 *正確な外観が重要でない限り、特定の固定文字列に対するテストは避けてください。 – dcsohl