プログラムが適切に動作することを確信させるために必要なテストを作成します。
クラスにビジネスロジックがなければ、そのクラスのテストを書く必要はないと主張する人がいます。その引数により、単純なゲッターとセッターをテストする必要はありません。「ビジネス ロジック」を持つコード部分のテストのみを記述します。
ただし、反対側の議論として、コードを作成する場合は、コードのテストを作成する必要があります。その引数によって、それらのテストを作成する必要があります。テストは本当に些細なことになります。オブジェクトをインスタンス化し、setter で値を設定してから、その値が getter で返されることをアサートします。単純なテストが多くなり、書くのが面倒になることがあります。
私は 2 番目の陣営にいますが、何かをテストするのが難しい、またはテストするのが苦痛になる場合は、設計に問題があるという兆候であることがわかりました。この場合、不要なものに対するアクセサー メソッドが存在する可能性があります。発生した可能性があるのは、データ オブジェクトにすべてのプロパティがあり、それぞれにゲッターとセッターが「必要」であるということです。しかし、あなたは本当にですか?
あなたの質問では、getFullName
方法があると述べました。getFirstName
では、 andのメソッドが本当に必要getLastName
ですか? ページのレンダリング中にオブジェクトのデータが変更されるのはなぜですか? 更新/作成のために新しいオブジェクトをデータベースに送信することによって更新が行われるように、セッターを忘れてデータレコードを「不変」にしてみませんか?
あなたがこの質問をしている理由は、あなたがこのコードを書き、今戻ってそのテストを書こうとしているからだと思います。このデータ オブジェクトがあり、すべてのゲッターとセッターが自動的に作成されます。次に、それを使用していたときに必要な追加のメソッドを作成しました (getFullName
メソッドなど)。むしろ、アクセサーは必要なときにだけ作成することをお勧めします。次に、その時点でテストを作成すると、関数のリストが大幅に小さいことがわかります。必要なデータの組み合わせを取得するいくつかのメソッドと、特定の形式 (つまり json) ですべてのデータを取得するための一括メソッドがある場合があります。