2

リンクリスト クラスを考えてみましょう。私は 2 つのプライベート変数 1. firstNode と 2. lastNode を保持しています。これらの変数は内部でのみ使用されるため、ゲッターを介して公開されません。操作によってこれら 2 つの変数が期待どおりに変更されることをテストしたいと思います。例: 最後のノードが重複していた場合、並べ替えられたリンクリストで重複を削除すると、最後のノードが変更されます。

  1. 単体テスト用にのみ明示的なゲッターを追加する必要がありますか?

  2. そうでない場合、公開されていないプライベート変数の値にアクセスする方法は?

4

4 に答える 4

3

やらないでください。リンク リストの実装ではなく、動作をテストする必要があります。リンクされたリストがさまざまな状況でどのように動作するかを調べ、予想される動作からテスト ケースを導き出します。クラス (プライベート メンバーを含む) の実装を調べる必要があるテスト ケースを作成していることに気付いた場合、そのテストは実際にはクラスの動作の正確性を保証していません。

于 2013-08-26T02:35:58.680 に答える
3

プライベート変数はテストしないでください。パブリックなものだけをテストしてください。個人データをテストすることは、非常に壊れやすい実装の詳細をテストすることです。実装を変更すると、それらのテストは失敗するか、コンパイルされなくなります。

代わりに、パブリック API のみをテストするテストを作成します。リンクされたリストを使用する例では、テストでリストを変更し、パブリック メソッドを使用して構造を調べてノードからノードに移動し、すべてのノードが正しいことを確認する必要があります。

于 2013-08-26T01:38:00.760 に答える
0

パッケージレベルのゲッターにしようとすることができます。get 関数は公開されませんが、確認することはできます。

于 2013-08-26T00:56:27.603 に答える