最終更新日 : $Date: 2013-11-09 01:12:39 +0900 (Sat, 09 Nov 2013) $ 引っ越しました 引っ越しました。自動的に引越し先に遷移しない場合はこちらをクリックしてください。 https://kazurof.github.io/work/tryjunit4/tryjunit4.html
![JUnit4をやってみよう](https://cdn-ak-scissors.b.st-hatena.com/image/square/e13b2615584c2f88752c003d76949591ac2239c8/height=288;version=1;width=512/http%3A%2F%2Fwww7b.biglobe.ne.jp%2F~archer%2Ftryjunit4%2Fpageimage.png)
前に、MavenのプラグインとしてDockerの操作を行う、docker-maven-pluginを試してみました。 docker-maven-pluginで、Integration Test時にDockerコンテナの起動/停止をする - CLOVER🍀 今度は、JUnitのRuleを使用してDockerコンテナの起動停止を行う、Testcontainersを試してみたいと思います。 GitHub - testcontainers/testcontainers-java: Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything e
この記事はJava Advent Calendar 2016の 22 日目です。昨日はcactaceaeさんの「MySQL on Fusion-IOのパフォーマンスを引き出すバッチパターン」でした。 タイトルの通り、JUnit 5 Users Guideの拙訳です。 最初はJUnit 5を使って何か面白い記事が書けないかと考えていましたが、なかなか記事を書く時間を取れなかったため、ユーザガイドの中途半端な翻訳で場を凌ぐことにしました。始めの3章しか書けていませんが、近いうちに最後まで仕上げたいと思います。 所々「こう書いた方が読み易いかなー?」と考えながら訳していったため、原文とは対応が取れていないところがあります。ご容赦ください。 また、「これは英語のままの方がわかり易いかも…?」と思いながらも日本語に無理やり翻訳した部分が多々ありますので、改善のアドバイスなどいただけると幸いです。 1
はじめに Gradle の設定 テストの実行 アサーション Matcher ライフサイクル Display Names @Tag Nested Tests コンストラクタとテストメソッドへの DI Assumptions Dynamic Tests ライフサイクルコールバック はじめに JUnit5 のリリースが近づいています。現在は M2 で M3 の作業が進んでいます。 今のところの予定は以下のようになってます。 2016/10/21 M3 リリース 2016/11/30 M4 リリース 2016/12/30 M5 リリース JUnit4 とは(中身は)全く別ものです。が普通に使う分には特に今までと同じ感覚で使えます。 Java8 以降をサポートという潔い割り切りになってます。 Version 5.0.0-M2 のユーザガイドからかいつまんでみます。 Gradle の設定 プラグインが
この表から解るように、一部の機能を除けばJUnit4の機能は継承されています。 したがって、JUnit4を理解していれば継承された機能をJUnit5に移行することは難しくないでしょう。 最初は多少の混乱はあるかと思いますが、すぐに慣れるレベルかと思います。 逆に、新しくJUnit5からJavaのユニットテストに入るのであれば、JUnit4の制約がないことは良い材料です。 特に、構造化テスト(ネストクラス)の時、JUnit4ではネストクラスをstaticクラスにすることを強いられていました。 これは、テストクラスをテスト毎に作成するという制約があったためです。 この制約がある以上、テストクラスからアウタークラスのインスタンス変数にアクセスできませんでした。 ユニットテストではテスト毎にテストインスタンスを作成することが原則なので、この制約は仕方ないと考えても良いでしょう。 しかし、テストがネ
渡辺です。 DevelopersIOでの100本目のエントリーがJUnitネタとなりました。 自分がJUnit実践入門を執筆したのは2011年から2012年にかけてです(出版が2012年11月)。 それからJava8がリリースされていますが、JUnit4自体は大きな進化はしていませんでした。 昨日、JUnit Lambda Prototypeが公開されました。 まだプロトタイプということで、今後の変更は大きいかと思いますが、いよいよ次世代のJUnitの足音が聞こえてきた感じがします。 今回は、このドキュメントからJUnit Lambdaの概要と方針について速報をお送りしたいと思います。 なお、現在JUnitチームでは、このプロトタイプに対するフィードバックを募集しています。 ここはこうじゃないとかはてブコメントする前にTwitterやGitHubでフィードバックを! JUnit Lambd
利用する環境の作成につきましては、「Eclipseの使い方(Windows環境のEclipse4.3)」の「JDK8とEclipseのインストール」をご覧ください。 「JUnit5」に関するエントリーを作成いたしましたので、興味のある方は是非ごらんください。 「Eclipse Oxygen Update 1 (4.7.1)を利用してJUnit5の公式ガイドの内容を実践してみる。」 本エントリーの内容は以下の通りです。 JUnitとは JUnitプラグインの機能説明 JUnitプラグインの基本的な使い方 1 JUnitとは JUnitとは、Javaで開発されたプログラムにおいてユニット(単体)テストの自動化を行うためのフレームワークと、 関連するツール群の総称です。 JUnitの目的とする理念は以下の通りです。 一度作成すればすばやくテストが実行可能である。 ユニットテストが成功することで、
こんにちは、インフラストラクチャ本部の@nagaseyasuhitoです。このエントリは GREE Advent Calendar 2014 10日目の記事です。昨日はイケメンmoritaさんによる男性エンジニアリングマネージャが長期育休を取った話でした。 エンジニアブログのアカウントは2年くらい前からあるのですが、これが初エントリになります。グリーでは比較的珍しいJavaEEを始めとしたサーバーサイドJavaアプリケーションの開発、SolrやHadoopといったミドルウェアの周辺機能開発や運用などを行っています。どうぞよろしくお願いします。 最近はPvE/PvP/GvGなどユーザー同士がリアルタイムに協調プレイする際、クライアント-サーバー間を常時接続通信で行うゲームが増加しています。このような場合はHTTPのREST APIなど慣れ親しんだプロトコルでは要件を満たしきれないため、Web
全国50万のJUnit4ユーザーさん。使っている言語とテスティングフレームワークののMLとGithubやBitBucketリポジトリを監視していると思うので今さらかもしれませんが、2014/7/30にJUnit4.12 Beta-1がリリースされました。 結構楽しい機能が追加されているので、見逃している方のために情報を共有させていただければと思います。 基本的にリリースから抜粋しながら紹介ですがご容赦ください。 Release Notes junit/ReleaseNotes4.12.md at master · junit-team/junit · GitHub 全体の感想 JUnit4がおれの足元にやっと追いついたと思った。(今までJUnitとSpockを魔改造しまくってた。) テストランナー系 クラス階層化 JUnit魔改造コミュニティに朗報です。私たちのテストランナーでよしなにやっ
しかし、開発推進セクションとしてリーダーを中心に「基本的には必須ですが、相談には乗ります」と伝えてきました。もちろん、こちらとしても妥協することはありますが、基本は書いてもらうように言い続けたことは良かったと思います。今ではテストケースは2,000ケース以上となり、毎日jenkinsからもallTestの結果が送られてくるようになったのですから。そんなやりとりをしていく中で、こんなFAQも生まれました。 Q:巨大なメソッドで1行だけ修正したのですが、そのメソッド内をすべてテストしないといけないの? A:基本はテストしてください。 ただしトラブル対応など、どうしてもすぐにリリースしないといけない場合はその限りではありません。 結果的にこのようなFAQは、開発メンバーにJUnitの導入を受け入れてもらうために必要なことだったと思います。やはり、開発スピードを重視するチームにとって、やることが多
渡辺です。 Twitterでこんなことに困っている方がいたので、ブログのネタとして扱ってみました。 @shuji_w6e Javaって+0.0と-0.0が区別されてるじゃないですか。それで+0.0=-0.0はtrueになるんですけど、assertThat(+0.0 is(equalTo(-0.0)))ってなるとassert違反しちゃうんですよね・・・ — キーチ (@keachcox) October 26, 2013 「いつからプリミティブ型で比較していると錯覚していた?」 プリミティブ型とプリミティブラッパークラス はじめにJavaのプリミティブ型とプリミティブラッパークラスについて説明します。 Javaは歴史的な経緯からすべてのデータをオブジェクトとして保持していません。boolean, int, doubleなどの幾つかの型はプリミティブ型と呼ばれ、オブジェクトとは異なる扱いになっ
自動テストを導入することにより、テストケースの作り方を統一でき、網羅できます。全体を自動テストにできれば、変更部分以外の障害を防止できます。そして、テスト作業がコーディング作業になることによって、楽しくなるでしょう。実際のプロジェクトに導入するにあたってはいくつかの課題がありますが、自動テスト用のテストデータをあらかじめ用意しておくこと、DbUnit・Mockito・djUnitを使うことで解決できます。 対象読者 今回の対象読者は、下記のとおりです。 実際の開発プロジェクトへの自動テストの導入を検討されている方 JavaによるWebアプリケーション開発についての知識がある方 JUnitの基本的な知識がある方 必要な環境 JDK 7 Eclipse 4.3 Tomcat 7 自動テスト導入における課題 JUnitの使い方は簡単なので、試しに使ってみたという方は多いと思います。しかし実際に業
Jenkinsでは、JUnitのテスト結果からテスト件数や実行時間などを集計することが出来ます。この時、JUnitの実行結果はXML形式のファイルとして出力され、「JUnitのXMLファイル」などと呼ばれています。ところが、このXMLのフォーマットは、JUnitの公式フォーマットではありません。JUnit自体には実行結果をXML形式に出力する機能は実装されていないため、Ant, Maven, Gradleといったビルドツールによって出力されています。恐らくはAntが出力していたJUnitの実行結果のXMLフォーマットに、Eclipseなどの他のツールが対応していき、結果としてデファクトスタンダードとなったと思われます。 Jenkinsでは、デフォルトでJUnitのXMLを集計できるため、他のテストツールを使ってテストを実行した場合にも、JUnitのXML形式に変換すれば、簡単にJenkin
AWSチームに参画して2ヶ月ほど経ちました。ところが、AWSの構築などにはあまり関わらず、ひたすらAWSに関連するプロダクトの開発を行う毎日です。そんな折、ボスより次のようなリクエストをいただきました。 ユーザが参照できない情報について、参照できないことを検証して欲しい ・・・「出来ないことの検証」です。 「出来ることの検証」であれば、その例をテストケースとして記述してテストを実行すれば検証出来ます。しかし、出来ないことを証明することは非常に困難です。ただ、情報は有限なんで、総当たりにでもやればできるかもしれません。 !? システムのインフラは当然のようにAWSです。テストのためのリソースが足りなければ増やせばいいじゃないですか。時間がかかるならば並列化すればいいじゃないですか。テストの時だけ増やせばいいんです。 ならば、総当たりでテストしよう という方針になりました。そして、ブログのネタ
テスト分類のひとつにブラックボックステストとホワイトボックステストがあります。 ブラックボックステストとは、テスト対象の内部を意識せずに外部仕様のみからテストケースを構築していく手法です。ユニットテストであれば、テスト対象となるメソッドの実装(コード)を意識せず、メソッドのAPI仕様からテストケースを作成することになります。 一方、ホワイトボックステストでは、テスト対象の内部を意識し、どのような構造であるかを踏まえたテストケースを構築します。ユニットテストであれば、テスト対象となるメソッドの実装(コード)を意識し、分岐や繰り返しなどを考慮しつつテストケースを作成することになります。 さて、ユニットテストはブラックテストでしょうか? それともブラックボックステストでしょうか? 「JUnit実践入門」では次のように記述しました。 本書で扱うユニットテストは、テスト対象の内部ロジックを考慮して行
そもそもJUnitは、振る舞いのテスト(≒ブラックボックステスト)を前提としている(こんなデータを入れたら、こんな結果が返りますよーという意味で)。 privateメンバをテストしたいというのは、ホワイトボックステストをしたいということである(このメソッドは内部で別のメンバを使ってますよーという意味で)。 実際のところ、JUnitでは、privateメンバのテスト手段は提供されていない。 何とかしてprivateメンバをテストしたい、ということで、リフレクションを利用する人がいる。だが、リフレクションを利用するとリファクタリングが難しくなる(フィールド名を文字列で指定することになるため)。テストコードの書き方のせいで、リファクタリング作業が阻害されるのでは、本末転倒である。 そこで、どうしてもprivateメンバをテストしないと気が済まない人のため、別の解決案を考えた。 import ja
関西Javaエンジニアの会'13 7月度 - connpass 関西Javaエンジニアの会'13 7月度を7月31日に開催しました。6月に続いて二ヶ月連続ですね。三ヶ月連続は無いので心配しないでくだ……あ、8月にはJavaEEと言うかGlassFishと言うか、あれがありますね!(「関ジャバのイベント」ではありませんが。) Java EE 7 & GlassFish について語ろう - DevLOVE関西 | Doorkeeper 今回の関ジャバは@jyukutyoさんのindy、@chipstar_lightさんのDDD、2連続となる@haljikさんのパズラー、あと私のコレでした。 スライド スライドあげておきます。内容の詳細は……結局このブログへのリンクになるので、中で触れてるのもあわせてリンク並べておくことで代替。 JUnitの知識を棚卸し #JJUG - 日々常々 assertT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く