第4回 渋谷java http://connpass.com/event/3744/ でお話した「JUnit のオブジェクト等価比較を怠けたい!」の発表資料です。発表で使用するはずだったデモコードは https://github.com/komiya-atsushi/shibuya-java4 こちらの…

テストメソッド名を日本語で書きたい。 実線がYes, 点線はNo. 補足 テストコードが納品物になってないとかで軽視されている場合は、自身に対するわかりやすさ重視で日本語。 テストコードの価値がそれなりに認められている場合は、自分以外に少なくとももう一人日本語メソッド名に共感している人が欲しいです。布教して増やすでもオーケー。独り善がりは無し。 めげないってのはレポートとかが文字化けしたときに何らかの手段で対抗できる人かどうかです。自己解決できない人に無理に押しても不幸になるだけなので、その辺を片付けられるようになってから。 ポイントはJavadocが日本語かどうか。日本語メソッド名が効果を持つのは、そのコードを日本語を解する人が触る場合です。そうで無い人が触ることを想定してテストメソッド名は英語にするべきとか言うなら、javadocも英語にしていて然るべきです。Javadocが日本語なら
寂しがりだから Hamcrest と一緒に使ってあげてね。 やってみる こんな風に書いて。 import org.junit.*; import static org.junit.Assert.*; public class HogeTest { @Test public void hoge() { fail("しぱーい"); } } こうして。 $ javac -cp junit-4.11.jar HogeTest.java $ ls HogeTest.class HogeTest.java junit-4.11.jar だーん。 $ java -cp ./junit-4.11.jar:. junit.textui.TestRunner HogeTest .F Time: 0.003 There was 1 failure: 1) warning(junit.framework.Test
Java, Cayenne, jMockjMockの使い方を,いまさらながら調べたのでメモ的に記録しておきます。 ORマッピング・フレームワークであるApache Cayenneでは,多くのORマッパと異なり,データオブジェクト(エンティティ)がインタフェースを使っていません。Cayenneはバイトコード・エンハンスとかを使用しない作りなので,継承関係を用いてデータオブジェクトの機能が提供されてます。で,このデータオブジェクトのテストを実行する際にモックを使いたいのだけど,インタフェースがないからどうしよう,という話がありました。 答えは簡単な話で,ほとんどのモック・ライブラリは実クラスのモック化をサポートしています。今回はjMockを使いました。easyMockでも同じようなことは可能でしょう。pom.xmlへのライブラリの追加次のライブラリをMavenのpom.xmlに追加します。 o
更新: 2003/11/05 公開: 2002/01/03石井 勝 はじめに ここでは, JUnit ついて僕が普段使っているテクニックやコーディングスタイルについてまとめていきたいと思います.読者としては,ある程度 JUnit を使いこなせる方を想定しています. 僕が仕事で JUnit を使い始めて 1 年半以上になります.つい先日まで行っていた開発プロジェクトでは,テストメソッドの数は 2000 程度,TestCase のクラス数は 2,3 百個という規模になりました.それぐらいの規模になれば,JUnit でコーディングする際に何らかの指針が必要になります.その開発プロジェクトでは,何度もプログラミングスタイルを変え,どういうスタイルが JUnit のコードをメンテナンスしやすいか,ということを考えてきました.そういったことをまず プログラミングスタイルガイド と シナリオベースのテス
最近新人のコードレビューをする機会が増えまして、自分の中の経験則を言語化する機会に恵まれています。なんとなーくわかっていた事柄を人に伝えようとするのは、いつの時代にも最良の学びの機会ですね。 さて新人各位に個別に伝えた「JUnit4利用に関する注意」を整理してみました。JUnitは自由度の高いフレームワークであり使い方は十人十色かと思いますので、もっと良い使い道をご存知のかたは是非はてブコメントなどで教えていただければと思います。ちなみにここで言う「テスト」とは実装の前に書く単体テストだけではなく、実装後に書かれるものや自動化された統合テストも含めています。 1.JUnitを使うために押さえるべき前提知識 テストメソッドの実行される順番は不定 EclipseのJUnit実行機能に親しんでいると意外と気付けないのですが、JUnitはテストクラス内のテストメソッド実行順を保証していません。それ
Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけなので普通に使ってる方には不要な内容かと思います。私の今持ってる知識を書き殴ってみた感じになりましたが、微妙な理解と残念な文章力の相乗効果でグダグダになってます。お察しください。 内容は Assertion->カスタムAssertion、Matcher->カスタムMatcher、Rule->カスタムRule です。 Assertion JUnitは assert があってこそです。まず org.junit.Assert にある馴染み深い assert を並べてみます。 assertEquals
JavaでTDDBCに参加し、Bootはした。となると次はBoostしていく必要が出てくる訳だが、職場や社外で実践経験を積むのと同様、JUnitやJavaでのテスト実行に関しての知識も増やしていく必要があるのでは?と思い立ち、このタイミングで有用なネタを集めてみました。 Groovy/G*界隈でBoostする為に有用なリンクを集めてみた(Groovy編) - Shinya’s Daily Report Groovy/G*界隈でBoostする為に有用なリンクを集めてみた(Gradle編) - Shinya’s Daily Report Groovy/G*界隈でBoostする為に有用なリンクを集めてみた(Spock編) - Shinya’s Daily Report テーマによってはひとまず項目のみ洗い出し、項目別に写経や深掘り調査を行った後にエントリとしてUPして行こうと思います。 JUni
blog1.mammb.com では CoreMatchers についてでしたが、こちらでは org.hamcrest.Matchers についてまとめます。 org.hamcrest.Matchers JUnit についてくるのは org.hamcrest.CoreMatchers で基本的な Matcher が提供されています。org.hamcrest.Matchers は CoreMatchers を機能拡張したものとなってます。CoreMatchers にあるメソッドは、Matchers にもあります。 hamcrest-core − org.hamcrest.Matchers が入ってる hamcrest-library − org.hamcrest.Matchers が入ってる hamcrest-library は以下のようなパッケージ構成となっており、各用途に応じた Ma
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"));
JUnit Hamcrest on eclipse eclipse の JUnit サポートに そろそろ Hamcrest の static インポート設定入れて欲しいところです。環境変わると設定箇所探すのに戸惑うので・・ ということでメモ。 Content Assist Favorits 設定画面で、Java - Editor - Content Assist - Favorits にて以下の設定。 New Type org.hamcrest.CoreMatchers org.hamcrest.Matchers (hamcrest-library利用時) New Members org.junit.Assert.assertThat org.junit.Assert.fail こんな感じです。 JUnit の jar だけ使うなら org.hamcrest.Matchers の指定は不要
Junit4.4から assertThat というアサーションメソッドが追加された。 APIの定義は以下の通り。 public static <T> void assertThat(T actual, org.hamcrest.Matcher<T> matcher) public static <T> void assertThat(java.lang.String reason, T actual, org.hamcrest.Matcher<T> matcher) 以下の様に、英語として読みやすい記述でアサーションを記述できる。 import static org.hamcrest.CoreMatchers.*; public class Test1 { @Test public void test() throws Exception { assertThat(Integer.pars
私のように昔からJUnitのコードを書くことが習慣となっていると、値の検証はassertEquals(期待値, 実際値)メソッドで行うというというのがずっと常識となっていました。しかし、4年ほど前にリリースされたJUnit4.4以降では、長年親しんできたassertEquals()に加えて、新しくassertThat()と呼ばれる別の検証メソッドが追加されています。この新しい検証メソッドについては、既にいくつかのサイトで説明されています。 http://journal.mycom.co.jp/articles/2007/07/20/junit1/index.html 林檎生活100: JUnit 4.4 の機能,assertThat と Assumptions,Theories について. hamcrestのMatcherメモ - 都元ダイスケ IT-PRESS hamcrest の Co
単体テストを“神速”化するQuick JUnitとMockito:ユカイ、ツーカイ、カイハツ環境!(16) Quick JUnitプラグインの3つの大きな特徴 近年、JUnitとHudsonを利用した継続的インテグレーション(CI)によるテストの自動化や、テスト駆動開発(TDD)の普及などにより、ユニットテスト(単体テスト)のテストコードの作成が重要視されています。 今回紹介する「Quick JUnit」プラグインは、JUnitによるテストコードの作成と実装を支援するEclipseプラグインです。Quick JUnitプラグインは石井勝さんにより開発されていましたが、石井さんが不慮の事故により死去後、Quick JUnitプラグインプロジェクトにより開発が継続されています。優れたオープンソースプロジェクトの模範のようなプロジェクトです。 訂正のお知らせ 故人のお名前について間違いがあり、修
技術ネタじゃないところで盛り上げてしまった。技術ネタいこう、技術ネタ。 さて、JUnitを使う際、hamcrestライブラリを使って、英語として読めるようなassertionを書く、なんてのは流行ってたり流行っていなかったり? JUnit4限定だけれど、assertionの際、assertEqualsとか色々assertionのメソッドはあるけど、全てassertThatで書くことができるはず。assertThatメソッドの第一引数にテスト対象、第二引数にhamcrestのMatcherインターフェイスの実装を与えます。なんのこっちゃですが。 Jiemamyでは、なるべくassertThat以外のassertionメソッドを使わないようにテストを書いています。(もしかしたらもう一つも残ってないかも。) まぁ、以下のように書くと、英語っぽいのが書けますよ、と。 assertThat(aaaa
こんにちは。低スペック系プログラマregtanです。いっちゃなんですが僕はそんなにハイスペック系 プログラマでないことはよくよく理解しています。build.xmlで存在しないパス書いてドヤ顔したり、 全部staticつけたりしない程度にはJavaかける程度のスペックはあるとおもいます。 そんな僕でもJavaはTDDで書こうと思うしhamcrest使おうとか考えちゃう訳ですよ。 org.hamcrest.CoreMatcher.*やorg.hamcrest.Matcher.*に色々便利そうなMatcherが入っていますが なかなか覚えられません。低スペックだから仕方ありません。自分で覚えられないのならいつも使う IDEに覚えてもらうのが一番楽。つまりはEclipseに空気を読んでもらってアシストしてもらえばいい わけです。流石の僕もCtrl+Space押せばコードアシストすることくらい知って
便利なEclipseプラグイン集「Limy」とは 「Limy」というEclipseプラグインをご存じでしょうか。これは、コード支援機能やプロジェクトの品質管理機能、プロパティエディタやVelocityテンプレートエディタなどが含まれている便利なEclipseプラグイン集です。 今回は、Limy Eclipseプラグインに統合されているソフトウェアの品質レポートを生成する「QALab」の機能を利用したソフトウェア品質管理やLimy EclipseプラグインのQALab実行機能について紹介します。 ■さまざまな品質管理機能を一括実行/総観できる「QALab」 Javaで品質管理を行うツールとして、さまざまなツールが提供されていますが、それらを利用するには1つずつセットアップする必要があり面倒です。 ObjectLABにより開発されるQALabを利用すると、さまざまな品質管理ツールを一括して実行
JUnitより簡単なオープンソースの「TestNG」とは?:次世代テストフレームワークでテストを変える(1)(1/3 ページ) テスティングフレームワークといえば…… Javaエンジニアが「テスティングフレームワーク」という単語を聞いて、真っ先に連想するものは、「JUnit」でしょう。しかし、テスティングフレームワークはJUnitだけではありません。「TestNG」というテスティングフレームワークも海外では高く評価され、確固とした地位を築いています。例えば、JBoss SeamはTestNGをベースにした統合テストフレームワークを提供しています。 この連載ではTestNGのコンセプトから詳細な使い方まで解説し、開発プロジェクトにおいてTestNGを利用する際の助けとしていただくことが目的です。 連載第1回では、Javaエンジニアになじみ深いJUnitとTestNGを比較し、2つのフレームワ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く