0

設計しているグラフィカル言語のインタープリターを開発しており、開発プロセス(すべてJavaのコード)にTDDを適用したいと考えています。execute()私のインタプリタには、指定された図を実行するパブリック関数が1つだけあります。ダイアグラムを実行するには、クラスはいくつかの内部(プライベート)メソッドを使用する必要があります。TDDを使用してこれらのメソッドを作成したいのですが、プライベートであるため、それらにアクセスする方法を考えることができません。私は何が間違っているのですか?

ありがとう

4

4 に答える 4

2

プライベート メソッド パッケージをプライベートにして、同じパッケージ内の Test からいつでもテストできます。もちろん、これはある程度の規律が必要であり、同じパッケージのプライベート メソッドを呼び出そうとしないことを意味します。

于 2012-06-21T08:53:38.423 に答える
1
  1. プライベート関数は、独自のテストが必要なほど複雑ですか (つまり、execute の複数のテストではカバーされません)。はいの場合、特にプライベート メソッドが多すぎる場合は、それらを共同作業者に分割する必要があるかもしれません。プライベート メソッドに対するテストを作成すると、将来のリファクタリングにも悪影響を及ぼします。つまり、いくつかのプライベート関数をマージ/分割すると、Execute() の機能がまだ損なわれていない場合でも、更新するテストがたくさんあるとします。
  2. そうでない場合は、必要なだけ Execute() のテストを記述して、目的の信頼/パス カバレッジを達成します。
于 2012-06-22T05:48:31.143 に答える
1

この種のことを行う方法は、テストのファイル (入力と期待される出力) を用意することです。パブリック関数でデータをスローし、結果を予想と比較してチェックします。これがあなたのケースにとってどれほど簡単かはわかりませんが、テストと本番コードの実装にとらわれません。

于 2012-06-21T09:55:11.423 に答える
1

テスト コードを同じパッケージに入れ、プライベート メソッドを変更して、代わりにデフォルト (パッケージ) の可視性を持たせます。クラスを開きすぎて、同じパッケージ内の不正なコードが悪いことをするのではないかと心配している場合は、クラスとテスト コードを独自のパッケージに移動します。

于 2012-06-21T08:53:51.963 に答える