Javaユニットテストの自動生成ツールとしては、フリーでオープンソースのツールが最適です。私は、ユニットテストは、システムの設計を文書化し、駆動する通常のTDDユニットテストと同じ目的を実際果たすことはできません。しかし、自動生成された単体テストは、巨大なレガシーコードベースを持ち、必要な変更が望ましくない、不明瞭な副作用を伴うかどうかを知りたい場合に役立ちます。レガシーJavaコードの自動生成ユニットテスト
答えて
無料ではありません。オープンソースではありません。しかし、私はAgitarOneアジテーター(http://www.agitar.com/solutions/products/agitarone.html)が自動的にユニットテストを生成し、不要なあいまいな副作用のために
正直言って、私はおそらくこれをしません。単体テストは分離されており、副作用の原因となる他のものからすべてが隔離されているため、「望ましくない、わかりにくい副作用」があるかどうかは実際には分かりません。その結果、統合またはシステムテストが必要で、はが自動化できるものではありません。
信頼性の高い高レベルのエンドツーエンドシステムテストをいくつか構築し、次にカバレッジテストを使用して見つからなかったものを見つけ出します。欠点は、バグが収穫されると、正確な原因を指摘するのは難しいかもしれませんが、逆に、バグを見る可能性がはるかに高いということです。
バグを見つけたら、単体テストだけを書いてください。あなたが進むにつれて、リファクタリングするビットにTDDを使用することができます。
私は、これはおそらくあなたが聞きたい答えではありませんでしたが、私はほとんど唯一の方法、それを呼び出すないだろうけれども(私は多く、長年にわたってテストしてきたし、これは固体のアプローチです:)
このアプローチの補足として、http://www.objectmentor.com/resources/articles/WorkingEffectivelyWithLegacyCodeを読むことをお勧めします。pdf(警告PDF) and this http://www-128.ibm.com/developerworks/java/library/j-legacytest.html 実際にテストを自動生成するとは思わない – Jean
を見て、本当に良いことがわかっていることは興味深いですが、そのような生成されたユニットテストは、実際に役立つことがあります。レガシーアプリケーションで作業している場合、最先端のユニットテストを正確に記述することは難しいでしょう。
このように生成されたテストでは、変更の際にコードの動作が損なわれないようにすることができます。はコードをリファクタリングし、より良いテストを書くのに役立ちます。
約自体はです。魔法のツールについてはわかりませんが、メソッドのjavadocでいくつかのテストを行うことについてJUnitの機能を検索することができます。これにより、簡単なテストを書くことができます。そして確かに、それは実際には価値があります。
第2に、「大きな」テストを手作業で書くことができます。もちろん、これらはユニットテストではありませんそれ自体は(分離、潜在的な副作用など)、良い最初のステップかもしれません。特に、ほとんど時間と従来のアプリケーションがある場合。
ボーナスのヒント!「レガシーコードで効果的に作業する」という優れた本があり、このような状況で使用するための技術を含め、Javaの例があります。残念ながら、手動でいくつかのことをしなければならないでしょうが、とにかくそれをやる必要があります。
EclipseのCoviewプラグイン(http://www.codign.com/products.html)はちょうど仕事に見えます。私はコード内のすべてのパスをカバーするテストを生成することに興味があり、これはそうするようです。それはまた、時間のトンを節約するモックを生成します。
- 1. ユニットテストを自動的に生成するためのJavaフレームワーク
- 2. Javaコードの自動作成
- 3. Javaポリシーファイルの自動生成
- 4. Swift自動コード生成
- 5. 自動コード生成C#ユーザーコントロール
- 6. Javaコードの自動生成IDをOracleデータベースから取得
- 7. eclipseでJava 8コードを自動生成する方法
- 8. ジェネリック、リフレクション、自動生成コードへのアクセス
- 9. FluentMigratorマイグレーションC#コードの自動生成
- 10. POJOドメインJavaクラスの自動生成
- 11. Java UML NetBeans 7.0の自動生成
- 12. エンティティフレームワークデータベースからのインターフェイスの生成最初の自動生成コード
- 13. ユニークな番号を自動生成JAVA
- 14. Java Spark Dataset自動生成コンパイル例外
- 15. Javaコードの生成
- 16. 自動Cユニットテスト
- 17. ジャンゴ - 独自のコードの自動生成ドキュメントに使用admindocsが
- 18. C++の自動ユニットテスト
- 19. Javaコードを実行してブランクジャスパーレポートを自動生成する際のエラー
- 20. xtextの自動コード遺伝子生成中にアクセスファイルを作成
- 21. レガシーWebサイトでユニットテストを実施
- 22. フィールド生成メソッドの自動生成
- 23. 派生自動生成エンティティークラス
- 24. 自動生成テキストボックス
- 25. 自動レター生成
- 26. 自動インラインドキュメント生成
- 27. 自動生成タイムスタンプ
- 28. C++での自動ユニットテストOS
- 29. Vbscriptの自動化/ユニットテスト
- 30. のVisual Studio - C#自動ユニットテスト
私は大好きですAgitarのようなもののオープンソースの実装を見るためには、オープンソースが本当にうまくいくべきものなのです。 – Vihung