2009-07-27 8 views
0

JUnit内でウィザードを使用してTestCaseまたはTestSuiteを作成することは可能ですが、メソッドシグネチャの変更や新しく追加されたメソッドなど、テスト下のクラスが変更された後のコードの同期方法はわかります。私は、私のTestCasesが、私のTestCases内で変更されたメソッド/パラメータ/メソッドのシグネチャを同期(削除または追加)できるようにしたいと思います。JUnitテストケースをEclipe内のテスト対象クラスと同期させることは可能ですか?

私は役に立たないとGoogleで検索しようとしましたが、おそらくそのためのeclipseプラグインがありますか?

答えて

1

生産コードの構造と1-1の関係にあるテストは、テストの匂いです。プロダクションコードに基づいてテストを生成するのではなく、システムのビヘイビアーの仕様(テストごとに1つのテスト)としてテストを書くほうがはるかに優れています。あなたはそれがすべて、テストを書く ビューシフトのあなたのポイントを動作を指定していないことだということを理解すると

http://blog.daveastels.com/files/BDD_Intro.pdf

より引用します。突然、あなたのプロダクションクラスごとにTestクラスを持っているという考えは、ばかげて 制限です。独自のテストメソッド( 1-1の関係)を使用して、それぞれのメソッドをテストするという考えは笑われます。

+0

Thx。この質問を投稿してからしばらくして、私は行動に基づいたテストを書くことが道であり、それが私がやっていることであることに気付きました。私は今実際にユニットテストを同期する必要はありません:)私は完全にその視点(動作をテストするユニット)をサポートしています。追加すると、メソッド名にはテストする動作が含まれているので、これはテストを読みやすくなります。 –

0

自動リファクタリングを使用してメソッドシグネチャを変更した場合、テストケースとそのメソッドを呼び出す他のすべてのコードが自動的に更新されます。

新たに追加されたメソッドについては、テストクラスを自動的に更新する方法がわかりません。

3

前述したように、リネームや移動などのリファクタリングは、Eclipseツールを使用してリファクタリングし、手動で名前を変更するなどしない限り、自動的にテストケースに反映されます。

新しい方法については、テストを自動的に生成することは不可能です。もちろん、自動生成コードには世代を制御する場所と、テストケースを生成する場所がありますが、「通常の」手動コードの場合は、スタブ(空のメソッド)を提供することが最善の方法ですその中で?

より良いアプローチは、あなたが見ることができますnice Eclipse pluginは、ソースコード内で、どのようなコードをテストしているではありませんでカバーされている必要があり、たまたまそのようCoberturaEmmaなどのツールを使用して、code coverageを追跡することです。これは、より多くのテストが必要な場所のレポートです。

+0

ええ、私はおそらくコードカバレッジを超えた何かがあると思っていましたが、とにかくそれがやろうと思っています:)返信のために多くのありがとうございました –

関連する問題