Hiroki Uchida @nikuyoshi JUnit実践入門で書かれていたことを実践したら先輩に怒られて戸惑った。 本を鵜呑みにしすぎるといけない場合もあるんすね…。
![テストメソッドを日本語で書くことについて](https://cdn-ak-scissors.b.st-hatena.com/image/square/659078e9b963bd5f9a498da417f3b1e1d6536ff5/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2Ffe370ebbfdf8bffa9c2bceae387bdef1-1200x630.jpeg)
JUnit実践入門の「第12章 データベースのテスト」でも取り上げられているDbUnitさんのRuleから派生して、RuleとかRuleChainとかその辺をちょっと書いておきます。 JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus) 作者: 渡辺修司出版社/メーカー: 技術評論社発売日: 2012/11/21メディア: 単行本(ソフトカバー)購入: 14人 クリック: 273回この商品を含むブログ (68件) を見る セットアップ ざくっと使えるようにするための build.gradle はこんな感じ。Mavenでもだいたいわかりますよね。 apply plugin: 'java' repositories.mavenCentral() dependencies { testCompile 'com.h2database:h2:1.3.170'
これはTDD Advent Calendar jp: 2012参加記事です。 前日(8日目)は、KTZさんの「Rhino.Mocksをちょっとだけ幸せにするお助けクラス」でした。 xUnitによるテスティングフレームワークの共通仕様として、「テストクラス内のテストの実行順序は不定」というのがあります。 とはいえこの仕様をテストを書く上で意識することはあまりありません。テストのあるべき姿として、テストメソッドは他のメソッドから独立しているべきですし、JUnitの場合、ほとんどの実行環境上で、ソースコード上の並びと同一順でテストが実行されていたからです。 しかしJava7(Oracle実装)からは事情が異なります。 package jp.fieldnotes.java; import org.junit.Rule; import org.junit.Test; import org.junit
WEB+DB PRESS plus(ウェブディービープレスプラス)シリーズは, Webアプリケーション開発のためのプログラミング技術情報誌『WEB+DB PRESS』編集部が自信を持ってお届けするシリーズです。 みなさんは,JUnitでユニットテストを書いていますか? 大事だとはわかっているんだけど,面倒そうだし,最初の一歩が難しい JUnitを調べ始めると,情報の多くは古いバージョンのものばかり JUnit 4になって以降,どんな機能が追加されたのか,よくわかっていない そういう人も多いのではないでしょうか。Javaのテスティングフレームワークとして事実上のデファクトスタンダードの地位を占めているJUnitは,なにぶん長い歴史を持っていますので,触れたことのある人は膨大な数に上ります。しかし,日本語のまとまった情報は意外と少なく,本家JUnitが進化するに従って経年劣化を起こしてしまって
JUnit 強化キャンプ : ATND 2012/04/07 JUnit 強化キャンプ #junitbc - Togetter (写真:会場となった某漫画喫茶個室内に映し出される実践映像を眺める参加者一同) 私自身、勉強会に於いてテスト関連のイベントには参加しつつも(TDDBC等)、そこから先テストに於いて諸々を(Bootからの次の段階である)ブースト(Boost)出来ていなかったので、このイベントを見つけ次第『これは!』と思い参加してきました。 会場はまんがねっとラウム新宿本店。 自身としては、漫画喫茶で勉強会やるってのは初めてだったので、『(諸々)どうなんだろう?』という気持ちがありましたが、実際やってみると殊の外快適で"これは良い"という感じでしたね。ネット回線(立地上の問題で時々調子が悪い時があった)や部屋に対する定員を上手く調整すれば、利用場所としてはかな〜り良いものになるのでは
Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけなので普通に使ってる方には不要な内容かと思います。私の今持ってる知識を書き殴ってみた感じになりましたが、微妙な理解と残念な文章力の相乗効果でグダグダになってます。お察しください。 内容は Assertion->カスタムAssertion、Matcher->カスタムMatcher、Rule->カスタムRule です。 Assertion JUnitは assert があってこそです。まず org.junit.Assert にある馴染み深い assert を並べてみます。 assertEquals
このエントリーは、@cero-tさんのエントリーの次で、Java Advent Calendar 2011の6番目のエントリーです。自分自身の今年のメインテーマがTDD(テスト駆動開発)と言う事もあり、関連エントリーとしてJUnitについて書きたいかと思います。今更JUnit?と思われた方も普段からJUnitを使っていあなたも気軽にお読みください。尚、色々な話題を駆け足で紹介するので、どれも簡単な紹介程度になってしまいますが、ご了承願います。 JUnit4 スタイル JUnitがアノテーションに対応し結構な月日が流れましたが、古いコーディング規約のままでテストコードを書いていませんか?JUnit4では、アノテーションとアサーションを使ったテストコードを書くことが基本スタイルです。かつては、TestCaseのサブクラスを作り、testではじまるメソッドを定義していましたが、今は Testアノ
以前のモックフレームワークの技術的制約 今まで私が担当してきたプロジェクトにおいては、モックオブジェクトを使ったJUnitの単体試験はjMockとEasyMockのいずれかのフレームワークを利用して行ってきました。しかし、これらのフレームワークはJavaプラットフォームにおけるコード自動生成の考え方の変遷で説明したように動的プロキシーに基づいているため、以下のような制約がありました。 モック化する対象の型はインターフェースを実装しているか、継承可能なクラスであること モック化するメソッドはfinal、static、privateでないこと*1 モック化するロジックはコンストラクターの呼び出しではないこと モックオブジェクトをテスト対象クラスにDIかパラメーター経由で引き渡すことが可能であること モック化する場合はクラス全体をモック化する必要があること(getterやsetterなどは本物の
blog1.mammb.com のついでに hamcrest の CoreMatchers についてまとめます。 Matchers については blog1.mammb.com まずは基本の is と not 全体的にはこんな感じ。 import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import org.junit.Test; public class FooTest { @Test public void testFoo() { String actual = "foo"; assertThat(actual, is("foo")); } } not はこう。 String actual = "foo"; assertThat(actual, not("bar"));
Quick JUnitの0.6.0を近くリリースする予定です。どんな機能なのか、ここで簡単に紹介したいと思います。EclipseでいうNew and Noteworthyです。リリース候補版を http://quick-junit.sourceforge.jp/updates/beta/ で公開しています。リリース候補版ですが、特に問題なければこのまま正式版として配布する予定です。 Quick JUnitのアイコン まず大事な事から。このはてダで投票して頂いていたQuick JUnitのアイコンについてです。 このアイコンは@kurikazuさんが描かれたアイコンです。@kurikazuさんのアイコンをベースに、少し手直しをして頂きました。応募してくださった@tkzさん、@bikisukeさん、@satoshi_kimuraさん、@kurikazuさんありがとうございました。後日何らかの形
とりあえず、車輪の再発明な気がします。 どっかにきっとあると思うんだ。 以下、本題です。 hamcrestパッケージの叙述的?記法は結構気に入ってるのですが、 Date系のMatcherがあんまりなくて、今のテストだと、 年だけとか、月だけとか、日だけの検証がしたくなってきました。 hamcrestのMatcherクラスは結構簡単に拡張出来るので書いてみました。 以下のメソッドを利用して比較出来ます // 年・月・日が正しいことを比較 assertThat(Date, isDate(Date)); // 年が正しいことを比較 assertThat(Date, isYear(int)); // 月が正しいことを比較 assertThat(Date, isMonth(int)); // 日が正しいことを比較 assertThat(Date, isDay(int)); 以下ソースです。 impo
平鍋さんがTwitterで、Kent Beckのインタビューについてつぶやいていたのが目に留まったのですが、 リンクが張られていなかったのでソースをお聞きしたしたところ、 「協力して訳してみませんか」という話になりました。 大して英語できないし、何よりアジャイルソフトウェア開発についての知識が乏しいので躊躇しましたが 「このチャンスを逃してはもったいない」と、思い切って参加させて頂きました。 元ネタは「Software Engineering Radio」のインタビューです。 http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/ まずは、平鍋さんに訳して頂きました。訳は平鍋さんのブログに公開されています。 http://blogs.
"Software Engineering Radio" という PodCast の Kent Beck のインタビューがとても面白かったので、要点を日本語訳したい。 http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/ 1時間くらいのインタビューなので、一人で全部やるのは辛い。。。と思い、リレー形式でこれを訳するプロジェクトを @urimaro さんと(勝手に)立ち上げました!参加したい人は、ぼくか@urimaroさんがこの PodCast を訳したブログや日記に、参加意思表明のコメントをください。基本、先着でまわしたいと思います。 ではここから。正確に訳しているのではなくて、ポイントを日本語にしていきたいと思います。インタビュー
先日は、@Ruleの使い方として、VerifierとTemporaryFolderについて見てきました。本日はその他のRuleについて見ていきます。 Timeoutルール org.junit.rules.Timeout は、全てのテストメソッドに、同じタイムアウト時間を設定します。コンストラクタにてミリセカンドでタイムアウトを設定します。 @Rule public MethodRule globalTimeout= new Timeout(20); @Test public void testInfiniteLoop() { for (;;) { ・・・ } TestNameルール org.junit.rules.TestNameルールは、テストメソッドの名前を取得可能にするルールです。以下の例では、testA というテストメソッド名が評価されています。まあ、何に使うの?という所はあります
Rules とは JUnit4.7から@Ruleアノテーションが追加されました。@Ruleアノテーションは、org.junit.rules.MethodRuleインターフェースのサブクラスによって定義された振る舞いをテストメソッドに追加します。 MethodRuleの組み込み実装クラス MethodRuleの具象クラスとして、以下のクラスが提供されています。 MethodRule ├ Verifier : オブジェクトの状態が不正な場合にテストを失敗させる │ └ ErrorCollector : 1つのテストメソッドの複数のエラーを集集する ├ ExpectedException : スローされた例外について柔軟なアサーションを行う ├ ExternalResource : サーバの起動停止などの外部リソースの操作を行う │ └ TemporaryFolder: テストメソッド前に一時フ
Kent Beck: "We thought we were just programming on an airplane" JUnit co-creator Kent Beck says a number of things convinced he and Erich Gamma to create a new revision of JUnit after a long hiatus, including TestNG and Java 5. Last week at JavaOne, Kent talked about JUnit 4 and gave a rare behind-the-scenes look at the lessons learned from creating one of the world's most popular free programs. J
http://martinfowler.com/bliki/JunitNewInstance.html JUnit testing framework のあるデザインについて、よく質問を受ける。 テストメソッドを走らせるたびに、新しいオブジェクトができる点についてだ。 blikiへ投稿するに値する内容だと思ったのでここに記す。 ( 念のために言っておくが、JUnitについて何か書くからといって、 その他のテストのやり方が重要じゃないと思っているわけじゃないですから。 有益なテスト方法はたくさんあるわけで、 JUnit やその親戚(xUnit)がいくら便利だからって、 すべてを解決してくれるわけじゃない。 テストについて言及してるblogがいくつかあるから、 そちらを読んでみることをお勧めする ( Brett Pettichord, Brian Marick, James Bach )。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く