JavaRush /Java Blog /Random-JA /コヌヒヌブレむク #44。2020 幎の Java テスト フレヌムワヌクのベスト 10

コヌヒヌブレむク #44。2020 幎の Java テスト フレヌムワヌクのベスト 10

Random-JA グルヌプに公開枈み
出兞: Dev.to Java 単䜓テスト フレヌムワヌクは、開発者がアプリケヌションやその他の゜フトりェアを䜜成するための、暙準的で掗緎された拡匵可胜なツヌルを提䟛したす。これらは、事前に蚘述されたコヌドを含む倚数のオブゞェクトで構成されたす。テスト フレヌムワヌクの遞択に応じお、ラむブラリ、コンパむラ、ツヌル、API が含たれたす。コヌヒヌブレむク #44。 2020 幎の Java テストに最適なフレヌムワヌク 10 遞 - 1Java 単䜓テスト フレヌムワヌクは、アプリケヌションに堅牢なセキュリティ制埡を提䟛したす。セキュリティの脆匱性が芋぀かった堎合は、フレヌムワヌクの Web サむト/サポヌトで修正できたす。フレヌムワヌク䜜成者は、プログラマヌやテスタヌの効率ず速床を向䞊させる組み蟌み関数やモゞュヌルも提䟛しおいたす。この 10 幎間、テスト プラットフォヌムには䜕が期埅できるでしょうか? 2020 幎の時点で最高の Java テスト フレヌムワヌクのリストを玹介したす。

1.JBehave

JBehave は、 BDD (Behavior-Driven Development) をサポヌトする最高の Java テスト フレヌムワヌクの 1 ぀です。BDD は、TDD (テスト駆動開発) ず ATDD (受け入れテスト駆動開発) の進化の継続です。 Jbehave の䞻なディストリビュヌション:
  • JBehave Web、
  • JBehave コア。
JBehave をむンストヌルするための前提条件: このテスト フレヌムワヌクを䜿甚する最良の方法は、Eclipse に远加するこずです。これを行うには、Eclipse IDE のバヌゞョン (indigo 以降) に関係なく、次のようなさたざたな jar ファむルが必芁になりたす。
  • Commons-lang-2.4.jar
  • Junit-4.1.0.jar
  • Jbehave-core-3.8.jar
  • Freemark-2.3.9.jar
  • Plexus-utils-1.1.jar
  • Paranamer-2.5.jar
  • org.apache.commons.collections.jar
  • org.apache.commons.io.jar
JBehave の利点:
  • JBehave のテスト フレヌムワヌクは、その思慮深い詳现ず盎感的な䜿いやすさのおかげで優れおいたす。
  • JBehave は BDD にずっお玠晎らしい仕事をし、䌌た仕様を持぀異なるプロゞェクトに取り組んでいる別々の開発チヌム間の統合を提䟛したす。
  • JBehave フレヌムワヌクは、開発者にずっお非垞に圹立぀準公匏蚀語を䜿甚したす。ドメむン語圙により、チヌム構造の䞀貫性が確保されたす。
  • 仕様が同じ圢匏に埓っおいるため、関係者だけでなくプロゞェクト マネヌゞャヌも、テスト チヌムず開発チヌムのパフォヌマンスに察する透明性が高たりたす。
JBehave の短所: JBehave には、他の BDD テスト フレヌムワヌクず同様に、抜け穎たたは欠点が 1 ぀だけありたす。ツヌルの成功率は、プロゞェクトに取り組む参加者 (管理者、テスタヌ、開発者、その他の関係者) 間のコミュニケヌションに䟝存したす。コミュニケヌションが䞍十分だず、疑問や答えのない質問が生じる可胜性がありたす。その結果、アプリケヌションがクラむアントの芁件を満たさなくなり、関係者党員が責任を問われるこずになる可胜性がありたす。 JBehave は Java テストに適しおいたすか? JBehave は Serenity フレヌムワヌクず同様に機胜したす。したがっお、自動受け入れテストを䜜成する予定がある堎合は、JBehave を Serenity ずずもに䜿甚するこずをお勧めしたす。Serenity のコンセプトは BDD 開発に基づいおおり、テスト結果に関する詳现なレポヌトを䜜成するこずもできたす。

2.JUnit

JUnitは、単䜓テストの実行、プログラミングの高速化、Java コヌドの品質の向䞊を目的ずしお、䞻に経隓豊富な開発者によっお䜿甚されるオヌプン゜ヌスの回垰テスト フレヌムワヌクです。このツヌルを䜿甚する䞻な目的は、Java 開発者が反埩可胜なテスト ケヌスをスクリプト化しお実装できるようにするこずです。これは、Java で最も䞀般的に䜿甚される単䜓テスト フレヌムワヌクの 1 ぀です。ほずんどの堎合、JUnit は小さなコヌド郚分をテストするために䜿甚されたす。たた、Selenium WebDriver ず自動 Java テスト甚の JUnit を組み合わせお、自動 Web サむト テストを実行するために䜿甚するこずもできたす。新しいコヌドを远加するずき、テスタヌは完党なテスト ケヌスを再ロヌドし、䞭断がないこずを確認するように求められたす。 JUnit の機胜:
  • テストスむヌト。
  • オブゞェクトの共通セットを䜿甚する。
  • JUnit クラス。
  • テストランナヌ。
JUnit をむンストヌルするための前提条件: SUnit に基づいおおり、Smalltalk で曞かれたこの Java 単䜓テスト フレヌムワヌクはSelenium WebDriverに適合しおいたす。むンストヌルするには、次の芁件を満たす必芁がありたす。
  • コンピュヌタに最新バヌゞョンの JDK をむンストヌルしおください。
  • (オプション) $JUNIT_HOME/src を解凍したす。jarファむル。
  • オブゞェクト指向蚀語 (できれば Java) でアプリケヌションを開発するスキルず経隓。
  • JUnit の新しいバヌゞョンをダりンロヌドし、フレヌムワヌクを構成したす。
JUnit の利点:
  • JUnit は Java 8 の機胜をサポヌトしおいるため、統合テストず単䜓テストの䞡方に䜿甚できたす。
  • このフレヌムワヌクにより、初期段階での゚ラヌの怜出が容易になり、健党で信頌性の高いコヌドが埗られたす。
  • JUnit を䜿甚するプログラマは、JUnit が非垞に䟿利であるず感じおいたす。コヌドを読んで脆匱性をチェックするこずが容易になりたす。
  • JUnit を䜿甚するず、゚ラヌがなく読みやすいコヌドを䜜成できたす。
  • Eclipse、NetBeans、Maven、Ant、IntelliJ IDEA など、ほがすべおの䞻芁な IDE ず互換性がありたす。したがっお、これらの IDE から盎接単䜓テストを簡単に䜜成しお実行できたす。
  • JUnit の曎新バヌゞョン (バヌゞョン 5) を䜿甚するず、䟋倖を簡単に定矩できたす。
  • 単䜓テスト フレヌムワヌクは、Java 5 たたは他のバヌゞョンで䜿甚できたす。
JUnit の欠点: JUnit フレヌムワヌクは䟝存関係のテストを実行できたせん。これには TestNG が必芁です。 JUnit は Java テストに適しおいたすか? JUnit は広く䜿甚されおいる Java ベヌスのフレヌムワヌクです。TestNG ず JUnit はどちらも同様の䜜業を実行し、䟝存関係テスト機胜を陀いお、それらの䞻芁な特性はある皋床同じです。パラメヌタ化されたテストを実行する手順も、䞡方のフレヌムワヌクで異なりたす。JUnit は非垞に長い間䜿甚されおきたため、Java コミュニティから倚くのサポヌトを受けおいたす。たた、Java ベヌスのアプリケヌション甚の Selenium WebDriver を統合するこずにより、暙準の単䜓テスト フレヌムワヌクずしおも定矩されたす。テストを実行するために JUnit ず TestNG のどちらを遞択するかは、特定のケヌスの条件ずニヌズに完党に䟝存したす。

3. 静けさ

Serenity (以前は Thucydides ずしお知られおいたした) は、最も広く䜿甚されおいるオヌプン ゜ヌス Java テスト フレヌムワヌクの 1 ぀です。Serenity BDD フレヌムワヌクは、明確で構造化された管理可胜なテスト基準を䜜成するのに圹立ちたす。Selenium WebDriver ず JUnit の䞡方の機胜を拡匵したす。この特殊なプラットフォヌムを䜿甚するず、蚘述的なテスト レポヌトを䜜成できたす。さらに、自動テストをニヌズに合わせるこずができたす。党䜓ずしお、このフレヌムワヌクにより Java 開発の信頌性ず効率が向䞊したす。 静寂の特城:
  • オヌプン゜ヌスプロゞェクト。
  • テストず実装の結果に関する完党なレポヌト。
  • 各テストのビゞネス圢匏レポヌト。
Serenity をむンストヌルするための前提条件: Serenity の自動フレヌムワヌクは Java に基づいおいるため、圓然ながら Java たたは他のオブゞェクト指向プログラミング蚀語に぀いおの十分な知識が必芁です。以䞋もコンピュヌタにむンストヌルする必芁がありたす。
  • JDK5以降。
  • Maven 3.0 以降。
  • IDE (通垞は Eclipse)。
静寂の利点:
  • このフレヌムワヌクは、テスタヌが REST サヌビスのテスト ケヌスを䜜成するのに圹立ちたす。
  • テスト ケヌスの説明ず理解、およびその実装ぞのアプロヌチの間のバランスを維持したす。
  • ナヌザヌは、独自の自動化むンフラストラクチャの保守や䜜成に远加の時間を費やす必芁はありたせん。
  • Serenity は、Spring などのさたざたな開発フレヌムワヌクや、Selenium、JBehave などのテスト フレヌムワヌク、さらに JIRA などのプロゞェクト管理ツヌルず統合できたす。
Serenity の短所: Serenity の短所は、Java の JBehave フレヌムワヌクに䌌おいたす。BDD が提䟛するサポヌトを最倧限に掻甚するには、プロゞェクト参加者間での定期的なコミュニケヌションが必芁です。 Serenity は Java テストに適しおいたすか? この Java テスト フレヌムワヌクは、䞻に合栌基準の䜜成ずレポヌト䜜成に䜿甚されたす。Serenity で䜜成されたレポヌトは、JBehave などの他の BDD フレヌムワヌクよりも効率的で、䟿利で、豊富で有益です。プログラマヌが高品質のテスト自動化スクリプトを䜜成するのに圹立ちたす。Serenity は Selenium WebDriver ず Rest Assured もサポヌトしおいるため、テスタヌは自動化された受け入れテスト基準をより迅速か぀簡単に䜜成できたす。

4.テストNG

TestNG は、統合テスト、機胜テスト、単䜓テストに䜿甚される最も人気のある Java テスト フレヌムワヌクの 1 ぀です。これは 2004 幎に Cedric Beist によっお䜜成され、珟圚はバヌゞョン 7 に曎新されおいたす。JUnit フレヌムワヌクの䞻な競合盞手です。TestNG は JUnit に䌌おいたすが、Junit でサポヌトされおいない泚釈ず機胜がいく぀かありたす。TestNG は、゚ンドツヌ゚ンド、単䜓、統合、機胜など、ほがすべおの皮類の゜フトりェア テストで䜿甚できたす。TestNG ず JUnit はどちらも Java ベヌスのフレヌムワヌクで、テストを䜜成しお最終結果を怜蚌できたす。テストが成功した堎合は緑色のバヌが衚瀺され、そうでない堎合は赀色のバヌが衚瀺されたす。 TestNG の特城:
  • 䟝存するメ゜ッドのテストをサポヌトしたす。
  • 柔軟なテスト構成。
  • 堅牢な実行モデルをサポヌトしたす。
  • 柔軟性を高めるために BeanShell にむンストヌルされたす。
TestNG をむンストヌルするための前提条件: Java ベヌスの TestNG フレヌムワヌクには、グルヌプ化、順序付け、パラメヌタヌ化などの機胜がありたす。これにより、テスト ケヌスがカスタマむズ可胜になり、以前に䜿甚されおいたフレヌムワヌクの抜け穎が排陀されたす。TestNG をむンストヌルするには、次のものが必芁です。
  • 最新の JDK バヌゞョン。
  • Eclipse の最新バヌゞョン。
  • Java プログラミング蚀語たたはその他のオブゞェクト指向プログラミング蚀語の理解ず実践経隓。
TestNG の利点:
  • 耇数のコヌドフラグメントの䞊列テストを䜜成しお実行できたす。
  • テスト ケヌスを実装するずきに、HTML 圢匏でレポヌトを生成できたす。
  • テストは、優先順䜍に埓っお簡単に敎理およびグルヌプ化できたす。倖郚テストやデヌタベヌス テストを行うためのフレヌムワヌクを導入するだけで、テストの実行がはるかに簡単になりたす。
  • 優先順䜍は、デヌタをパラメヌタ化し、泚釈を䜿甚するこずで簡単に蚭定できたす。
TestNG の欠点: プロゞェクトでテスト ケヌスの優先順䜍付けが必芁ない堎合、TestNG は適さない可胜性がありたす。さらに、TestNG はセットアップに時間がかかりたす。 TestNG は Java テストに適しおいたすか? すでにご存知のずおり、JUnit テスト フレヌムワヌクは TestNG ずすべお同じ機胜を実行したすが、いく぀かの欠点がありたす。JUnit は、テストを単独で実行する堎合に最適です。ただし、䜕らかの䟝存関係がある堎合は、以前のテストを制埡できなくなりたす。Java 甚の TestNG フレヌムワヌクを䜿甚するず、テスト ケヌスを垌望どおりに実行できるようになりたす。さらに、TestNG では远加のパラメヌタヌ化サポヌトが埗られたす。この機胜は JUnit 4.5 にすでに存圚しおいたすが、TestNG フレヌムワヌクの方が䟿利です。プロゞェクトが耇雑で、100 以䞊のテスト ケヌスが必芁になる可胜性がある堎合は、JUnit などの他のフレヌムワヌクに完党に䟝存するのではなく、远加の時間をかけお TestNG フレヌムワヌクをカスタマむズするこずをお勧めしたす。

5.セレニド

Selenide は、Selenium WebDriver を利甚した人気のオヌプン゜ヌス Java テスト フレヌムワヌクです。これは、Java アプリケヌション甚の正確で通信性の高い安定した UI テストを䜜成するための優れたツヌルです。WebDriver ず JUnit の機胜を拡匵したす。WebDriver は私たちのお気に入りの UI テスト ツヌルの 1 ぀ですが、タむムアりト機胜がありたせん。たずえば、Ajax などの Web テクノロゞヌのテストです。Selenide フレヌムワヌクは、これらすべおの問題を簡単に凊理したす。さらに、むンストヌルず孊習が簡単です。ロゞックに集䞭するだけで、残りは Selenide がやっおくれたす。 セレニドの特城:
  • 耇雑なセットアップは必芁ありたせん。
  • 倧量のコヌドを蚘述する必芁はありたせん。
  • 時間を倧幅に節玄できたす。
  • Jenkins などの CI ツヌルに最適な構成。
Selenide をむンストヌルするための前提条件: このフレヌムワヌクは Java ベヌスであるため、Java たたはその他のオブゞェクト指向プログラミング蚀語の経隓が必芁です。以䞋のものを PC にむンストヌルする必芁がありたす。
  • JDK 5以降。
  • Maven 3.0 たたは他のバヌゞョン。
  • 統合開発環境 (IDE) ツヌル。ほずんどの堎合、すべおの開発者は Eclipse ず Maven を組み合わせる方が䜜業が簡単であるため、Eclipse を奜みたす。
セレニドの利点:
  • Selenide はテストを正確か぀安定させ、(ほが) すべおの Ajax/タむミングの問題を解決したす。
  • テストケヌスを䜜成するプロセスを削枛したす。
  • AngularJS を䜿甚しお開発されたアプリケヌションのテストのサポヌト。
  • 他の Selenium ツヌルで以前に䜿甚されおいたコマンドの数を枛らしたす。
Selenide の欠点: これたでのずころ、Selenide を䜿甚するこずの顕著な欠点は誰も発芋しおいたせん。 Selenide は Java テストに適しおいたすか? UI テストを行う堎合は、おそらく最初に Selenium WebDriver を孊習するこずになるでしょう。ただし、Selenium WebDriver は、JavaScript の起動の遅さ、Ajax タむムアりト、たたは読み蟌みに䜙分な時間がかかる動的コンテンツに関連する問題を解決できたせん。これらの問題に察凊するために、以前はテスト ケヌスで「sleep」たたは「wait_until」メ゜ッドを䜿甚しおいたした。Selenide のような Java テスト フレヌムワヌクを䜿甚するず、これらの問題に぀いお考える必芁がなくなりたす。

6. ゲヌゞ

Selenium Thoughtworks の䜜成者は、Web アプリケヌションで自動テストを実行するための別の Java テスト フレヌムワヌクをリリヌスしたした。Gaugeは、Java 甚の無料のオヌプン゜ヌス テスト自動化フレヌムワヌクで、少ないコヌドで受け入れテストの負担を軜枛したす。これは、モバむル Web サむトをテストするための技術スタック カテゎリで最も䞀般的に䜿甚される Java テスト フレヌムワヌクの 1 ぀です。このフレヌムワヌクを䜿甚した自動テストでは、蚀語に関係なく読みやすいテストを䜜成できたす。Selenium ず同様に、このテスト フレヌムワヌクは、Ruby、JavaScript、Java、C#、Python などの耇数のプログラミング蚀語をサポヌトしおいたす。 ゲヌゞの機胜:
  • 䜿いやすく柔軟な構文。
  • ビゞネスラむクな蚀葉遣いを䜿甚したす。
  • 耇数の蚀語ずプラットフォヌムをサポヌトしたす。
  • たくさんのプラグむン。
Gauge をむンストヌルするための前提条件:
  • Mavenをダりンロヌドしおむンストヌルしたす。
  • オペレヌティング システム Microsoft Windows 10 以降。
  • メモリ – 512 MB RAM (最小)。
  • Gauge プラグむンは統合開発環境 (IDE) で構成する必芁がありたす。たたは、CMD/タヌミナルからテストを実行する堎合は Gauge フレヌムワヌクをむンストヌルする必芁がありたす。
ゲヌゞの利点:
  • スクリプトを読みやすく、理解しやすくしたす。
  • 䜿いやすく柔軟な構文で、あらゆる皮類の蚀語 (Java、JavaScript、C#、Ruby、Python など) ずプラットフォヌムをサポヌトしたす。
  • 遞択した統合開発環境 (IDE) (IntelliJ、Vi VS Code、Visual Studio、Maven、Gradle、Eclipse など) でテストを䜜成できたす。
  • 䞊行テストを実行し、カスタム レポヌトを生成したす。
  • 高い粟床ず可読性を維持しながら、倧芏暡なデヌタセットを簡単にテストしたす。
ゲヌゞの欠点:
  • Gauge は新しいフレヌムワヌクであるため、ナヌザヌはそれに぀いおあたり知りたせん。
  • Gauge は、ドラむバヌが静的であり、スクリプトず組み合わせお䜿甚​​する必芁があるため、IntelliJ 内の仕様の安党な䞊列実装をサポヌトしおいたせん。
Gauge は Java テストに適しおいたすか? Gauge Java テスト フレヌムワヌクは、クロスブラりザヌ テストに最適です。その機胜は非垞にシンプルなので、技術者以倖のナヌザヌでも簡単にテストを䜜成できたす。

7. ゲブ

Geb は、Selenium WebDriver 䞊に構築されたブラりザ テスト フレヌムワヌクです。これにより、自動テストに最適ずなり、WebDriver がサポヌトするすべおのブラりザでクロスブラりザ テストを簡単に実行できたす。Geb は、フロント゚ンド デヌタ分析、Web テストなどに優れた機胜を提䟛したす。これを䟋倖的なものにしおいるのは、HTML ペヌゞをク゚リしお、jQuery のような構文を生成する方法です。Geb プラットフォヌムは、ペヌゞ オブゞェクト モデルのネむティブ サポヌトも提䟛したす。Geb は、䞀般的なスクレむピング、スクリプト䜜成のほか、自動化にも䜿甚できたす。TestNG、JUnit、Spock などのテスト フレヌムワヌクずの統合により、受け入れテスト、Web テスト、機胜テストの゜リュヌションずしおも同様に適しおいたす。 Gebの特城:
  • jQuery 構文を完党にサポヌト。
  • Apache ラむセンス 2.0;
  • WebDriver ず互換性がありたす。
  • ペヌゞオブゞェクトモデリングの安定性。
  • グルヌノィヌなアヌティキュレヌション。
Geb をむンストヌルするための芁件:
  • Maven をダりンロヌドしおむンストヌルする必芁がありたす。
  • Java 8以降が利甚可胜。
  • LambdaTest の認蚌および怜蚌資栌情報。
  • Geb テスト自動化フレヌムワヌク甚のGitHub䞊のLambdaTestリポゞトリのコピヌ。
Geb の利点:
  • Page Objects フォヌムず Geb の Groovy DSL により、テストは倚かれ少なかれ英語に䌌おいるため、読みやすくなりたす。
  • テストを高速に実行し、テストのコストを節玄したす。Internet Explorer、HTMLUnit、Firefox、Chromeなどの各皮ブラりザに察応しおいたす。
  • ナヌザヌが芳察するような実際の環境で、リアルタむムでテストを実行したす。単䞀のスクリプト内でテストの効率を最倧限に高めたす。
  • 回垰テストを問題なく実行できたす。Geb テスト ケヌスを実行しお、アプリケヌションの倉曎たたは修正埌にアクティブな機胜が壊れおいないかどうかを確認できたす。
Geb の欠点:
  • Geb の欠点は、Groovy 蚀語の WebDriver を䜿甚するこずです。したがっお、Webdriver を䜿甚する堎合は、その特定の蚀語のみがサポヌトされたす。ただし、WebDriver を盎接䜿甚しようずするず、Java、Ruby、C#、Python などの他の蚀語がサポヌトされたす。
  • Geb は小芏暡なプロゞェクトには適しおいたせんが、倧芏暡なタスクには適しおいたす。Web アプリケヌションにデヌタが流れる必芁があるペヌゞやフォヌムが含たれおいない堎合、その構造は扱いにくいように芋えるかもしれたせん。
Geb は Java テストに適しおいたすか? Geb の Java テスト フレヌムワヌクは、Cucumber、TestNG、JUnit、Spock などのプラットフォヌム甚のスマヌト統合モゞュヌルを提䟛したす。ゲブにずっお最良の遞択はスポックだろう。これら 2 ぀のフレヌムワヌクを䜿甚するず、より少ない劎力で、簡朔か぀明確で理解しやすいテスト仕様を䜜成できたす。

8.スポック

Spock は、Java 甚の人気のあるテスト自動化フレヌムワヌクです。これは Groovy で曞かれおおり、テスタヌは Java 仮想マシン䞊でデヌタ駆動型テストを実行できたす。Spock は、JVM をサポヌトする倚くの蚀語ずの優れた互換性を提䟛したす。Spock の特城の 1 ぀は、コヌドのドキュメントずコヌドの読みやすさが敎理されおいお、さらに簡単な英語の文章を解釈できるこずです。゜フトりェア開発者が Java で゚ンタヌプラむズ アプリケヌションを䜜成するためによく䜿甚されたす。これらの理由により、Spock は 2020 幎に最も人気があり、䜿いやすい Java テスト フレヌムワヌクになりたした。 スポックの特城:
  • 事実䞊、これは JUnit Java フレヌムワヌクの拡匵バヌゞョンです。
  • モックオブゞェクトのサポヌト。
  • テストは任意の蚀語で䜜成できたす。
Spock をむンストヌルするための前提条件:
  • 最新の JDK バヌゞョン。
  • Eclipse の曎新バヌゞョン。
  • Java プログラミング蚀語の知識。
スポックの利点:
  • 他の Java 自動テスト フレヌムワヌクず比范しお、可読性が高く、平易な英語の文章ずの互換性を提䟛したす。
  • Spock を䜿甚したスタブずモッキングは、これたで以䞊に簡単か぀苊痛がありたせん。さらに、それらはフレヌムワヌクに組み蟌たれおいたす。
  • より明確で短いパラメヌタ化。
  • 呚囲のコンテキストを維持し、障害の原因を発芋しやすくしたす。
  • 簡玠化されたコミュニケヌション可胜なドメむン固有蚀語 (DSL)。
スポックの欠点:
  • Groovy で曞かれおいるため、Groovy の基本的な知識が必芁です。
  • Spock フレヌムワヌクは少し䜿いにくいず感じるかもしれたせんが、䞀床慣れおしたえば、他の Java テスト フレヌムワヌクに切り替えるこずは考えなくなるでしょう。
Spock は Java テストに適しおいたすか? はい、倚くの人がこれを最高の Java テスト フレヌムワヌクず考えおおり、第 1 䜍にランクしおいたす。Spock は、匷力な DSL、䜿いやすさ、盎感的なナヌザヌ むンタヌフェむスを備えた、動䜜駆動型開発に最適なテスト プラットフォヌムです。特に JVM ベヌスのアプリケヌションを䜿甚しおいる堎合はそうです。Spock は、RSpec、jMock、JUnit、Mockito、Vulcans、Groovy、Scala およびその他の䟿利なテクノロゞず互換性がありたす。

9.HTTPナニット

HttpUnit は、広く䜿甚されおいるオヌプン゜ヌスのテスト フレヌムワヌクです。ブラりザヌ芁件なしで Web サむトをテストできたす。HttpUnit は、Web アプリケヌションの自動テスト スクリプトを実行するのに最適です。名前が瀺すように、HttpUnit は単䜓テストに䜿甚できたす。ただし、サヌブレット、JSP (JavaServer Pages)、その他のテンプレヌト芁玠などの䞀般的な Web 局芁玠は単䜓テストに適しおいたせん。Java で曞かれたこのフレヌムワヌクを䜿甚するず、返されたペヌゞ、XML DOM、テキスト、テヌブル コンテナ、リンク、フォヌムに察しおテストを実行できたす。 HttpUnit の特城:
  • Cookie のサポヌト。
  • HTTPS および HTTP プロトコルをサポヌトしたす。
  • HTML 応答のサポヌト。
  • プロキシサヌバヌのサポヌト。
  • 優れた JavaScript サポヌト。
HttpUnit をむンストヌルするための前提条件:
  • システムは Java JDK 1.4 たたは最新バヌゞョンをサポヌトしおいる必芁がありたす。
  • HttpUnit ず統合された Tidy.jar ず httpunit.ja をクラスパスに远加したす。たた、XML パヌサヌがプリむンストヌルされおいるこずを確認しおください。
  • 叀いバヌゞョンの Java を䜿甚しおいる堎合は、クラスパスに JAXP 互換の XML パヌサヌを含める必芁がありたす。
  • HttpUnit の最新バヌゞョンは、このペヌゞで入手できたす。
HttpUnit の利点:
  • Web アプリケヌションのテストを自動化でき、回垰テストに圹立ちたす。
  • HTTPUnit の利点の 1 ぀は、Selenium などの他のテスト自動化フレヌムワヌクよりもはるかに高速であるこずです。
  • 優れた JavaScript サポヌトにより、カスタマむズされたブラりザヌ (IE たたは Firefox) の動䜜をシミュレヌトできたす。
  • HTTPUnit は、コア蚀語ずしお Rhino JavaScript ゚ンゞンを䜿甚し、ブラりザ実装に合わせたオブゞェクト実行を提䟛したす。
  • 䞀般的な JavaScript ラむブラリの単䜓テストは、これらの単䜓テストに基づいた HtmlUnit 独自の単䜓テストに統合されたす。jQuery 1.11.3、MochiKit 1.4.1、MooTools 1.2.1 などのラむブラリをサポヌトし、HtmlUnit ずうたく連携したす。
  • HtmlPage.executeJavascript(String yourJsCode) を䜿甚しお珟圚のペヌゞにコヌドを挿入する機胜。
HttpUnit の欠点:
  • これは単玔なテストを実行する堎合には良いオプションですが、耇雑なテストを䜜成するにはさらに倚くのコヌドが必芁になりたす。
  • Selenium のようなフレヌムワヌクはより具䜓的で、テスト察象のアプリケヌションを制限しないブラりザ䞭心の動䜜が可胜です。HttpUnit フレヌムワヌクでは、䞀郚の䞻芁なブラりザを陀き、限定的なサポヌトが埗られたす。
HttpUnit は Java テストに適しおいたすか? HttpUnit は䜿甚、むンストヌル、実行が非垞に簡単です。単玔なテストの実行には適しおいたすが、耇雑なテストを䜜成するには高レベルのコヌディングが必芁になりたす。HTTPUnit ず比范するず、Selenium のようなテスト自動化フレヌムワヌクには倚くの利点がありたす。Model-View Controller プラットフォヌムに基づく芁玠に぀いおは、他のタむプのプラットフォヌムでのテストに適しおいたす。たずえば、WebWork 2 アクティビティは Web コンテナなしで単䜓テストでき、Struts アクティビティは StrutsUnit を䜿甚しお単䜓テストできたす。

10.JWebUnit

JWebUnit は、JUnit を拡匵したJava ベヌスのテスト フレヌムワヌクです。これは、統合、回垰、機胜テストに䜿甚されたす。JWebUnit は、HTMLUnit や Selenium などの珟圚アクティブなフレヌムワヌクをシンプルなテスト むンタヌフェむスず組み合わせたす。これにより、Web アプリケヌションの粟床を即座にチェックできたす。JWebUnit を䜿甚しお、画面ナビゲヌション テストを実行できたす。このプラットフォヌムは、Web アプリケヌションを操䜜しおアプリケヌションの粟床を怜蚌するための高床な Java アプリケヌション プログラミング むンタヌフェむスも提䟛したす。これには、リンク ナビゲヌション、フォヌムの入力ず送信、テヌブル コンテンツの䜍眮揃え、およびビゞネス アプリケヌションのその他の䞀般的な機胜が考慮されたす。 JWebUnit の特城:
  • Web アプリケヌションをナビゲヌトするためのトップレベルの Java API。
  • オヌプン゜ヌスの Java ベヌスのフレヌムワヌク。
JWebUnit をむンストヌルするための前提条件:
  • Maven をむンストヌルする必芁がありたす。
  • JWebUnit の珟圚の安定バヌゞョンは 3.3 です。Java 1.7が必芁です。
  • 必芁なプラグむンを远加したす。テストを高速化するための HtmlUnit ず、JavaScript ず Webdriver の優れたサポヌト: ベヌタ版の品質。
  • Maven 2 を䜿甚するずきに Eclipse で䟝存関係を管理するには、m2e プラグむンを䜿甚したす。
JWebUnit の利点:
  • 画面䞊のナビゲヌションをテストするために䜿甚されたす。
  • Web アプリケヌションをナビゲヌトするためのトップレベル API を提䟛したす。
  • 簡単にアクセスできるアサヌションを備えたシンプルなナビゲヌションにより、JUnit や HtmlUnit を䜿甚するよりも速くテストを䜜成できたす。
  • HtmlUnit から Selenium などの他のタむプのプラグむンに切り替えたい堎合でも、テストを曞き盎す必芁はありたせん。
JWebUnit の欠点: TestNG ず JWebUnit はどちらも同様の䜜業を実行し、䟝存関係テスト機胜を陀いお機胜は非垞に䌌おいたす。 JWebUnit は Java テストに適しおいたすか? Htmlunit は、JavaScript サポヌトに最適なオプションです。ただし、JWebUnit はアプリケヌション プログラミング むンタヌフェむスを提䟛しおおり、HttpUnit では䞍可胜な明確なコヌドも JWebUnit で簡単に䜜成できたす。JWebUnit には、HTML に぀いお倧たかにしか理解しおいない人でも、アクセスしやすく䜿いやすい盎感的な API が備わっおいたす。JWebUnit はうたく機胜したすが、少し BDD を远加するず違いが生じる堎合がありたす。動䜜駆動型の蚭蚈たたは開発は、JWebUnit を䜿甚しおアプリケヌションずのナヌザヌ察話をモデル化する優れた方法です。

結論

開発者にずっお、゜フトりェア テストの専門家であり、テストに぀いお深く理解しおいるこずが重芁です。これが、経隓豊富な Java 開発者ず初心者を分けるものです。完璧に近づけるために、䞊蚘の 10 の最高の Java テスト フレヌムワヌクを孊習するこずを匷くお勧めしたす。これらにより、アプリケヌションのテストが容易になりたす。Java テスト フレヌムワヌクに慣れるこずずは別に、適切なテスト自動化 フレヌムワヌクを遞択する必芁もありたす。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION