1

Jacksonを使用したフィールドアクセスを使用したjsonシリアル化専用のクラスがあります。現在、いくつかの入力を受け取り、セッターを使用してプロパティを設定してそのクラスのインスタンスを作成するメソッドがあります。このメソッドの単体テストを行うには、そのクラスのすべてのプロパティを比較する必要があります。公のゲッターがいなければ、それは私が避けようとしている反省を通してのみ行うことができます。また、すべてのプロパティを使用して、そのクラスのequalsメソッドをオーバーライドしたくありません。

ゲッターを追加すると、単体テストのためだけにそのクラスのAPIが変更されます。この場合の最良の解決策は何ですか、そしてその理由は何ですか?これについての考えはありがたいです。ありがとう。

4

1 に答える 1

0

または、通常使用されるクラスの形式 (シリアル化されたバージョン) をテストできます。serializator は安全に動作すると想定できるコンポーネントであるため、テストされたクラスが機能した後にオブジェクトをシリアル化し、結果を参照 JSON と比較するだけです。これは、クラスがプロパティを正しく設定することを間接的にテストします。

一方で、ゲッターを追加することがどれほど大きな影響を与えるかについて議論する人もいるかもしれません。これが自動生成されたボイラープレート コードのようなものである場合は、getter を含めるようにジェネレーターを再構成する方がよいでしょう。そうでない場合、およびゲッターを意図的に実装しないことにした場合は、おそらくこのままにしておく必要があります。

于 2012-06-20T12:28:50.977 に答える