JUnit実践入門 ── 体系的に学ぶユニットテストの技法

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

ダウンロード

本書で使用したサンプルコード,および巻頭・巻末付録をダウンロードできます。

サンプルコードの利用方法については,付属のREADMEファイルをご覧ください。

巻頭・巻末付録についてはPDFとPNG画像を用意しました。印刷して利用する,壁紙として利用するなど,ご自由にお使いください。

MercurialやGitをお使いの方は,下記リポジトリからも取得できます。

補足情報

本書のFacebookページ

筆者による本書のFacebookページが下記にて公開されています。

お詫びと訂正

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2013年9月4日更新)

P.4 「ライセンス」の2行目(第2刷以降,修正済み)

EPL(Ecilpse Public License)
EPL(Eclipse Public License)

P.4 本文,下から2行目(第2刷以降,修正済み)

Eclipse 3.6.2 Indigo
Eclipse 3.7.2 Indigo

P.5 上から3行目(第2刷以降,修正済み)

Eclipse 3.6.2 Indigo
Eclipse 3.7.2 Indigo

P.35 コラム「テストケースとドキュメント」の脚注b(第3刷以降,修正済み)

注b Martin Fowler著/児玉信、友野晶夫、~
注b Martin Fowler著/児玉公信、友野晶夫、~

P.76 「テスト失敗メッセージの確認」の3行目(第3刷以降,修正済み)

assertThat(new Data(), is(dateOf(2012, 1, 12)));
assertThat(new Data(), is(dateOf(2011, 2, 10)));

P.174 脚注2(第3刷以降,修正済み)

注b Martin Fowler著/児玉信、友野晶夫、~
注b Martin Fowler著/児玉公信、友野晶夫、~

P.186 リスト11.18の3,4行目(第2刷以降,修正済み)

public class UserDaoStub implements UserDao {
    @Override
    public User find(String userId) throws {
        new UserNotFoundException("connection error");
    }
}
public class UserDaoStub implements UserDao {
    @Override
    public User find(String userId) throws UserNotFoundException {
        throw new UserNotFoundException("connection error");
    }
}

P.196 リスト11.29の3行目(第2刷以降,修正済み)

List list = new ArrayList();
List spy = spy(list);
when(mock.size()).thenReturn(100);
spy.add("Hello");
List list = new ArrayList();
List spy = spy(list);
when(spy.size()).thenReturn(100);
spy.add("Hello");

P.239 リスト13.7の上から16,17行目(第2刷以降,修正済み)

"ユーザIDとパスワードを正しく入力してください" :
"ようこそ、" + authUser.userId + "さん";
"ようこそ、" + authUser.userId + "さん" :
"ユーザIDとパスワードを正しく入力してください";

P.259 下から2行目(第2刷以降,修正済み)

実行状態を見えやすくなるため
実行状態を見えやすくるため

P.264 「ブランチカウンタ」の3行目(第3刷以降,修正済み)

記述に間違いがあります。一般的にC1カバレッジは例外処理なども分岐と見なしますが,EclEMMAで利用しているJaCoCoでは例外処理を分岐と見なしません。

try-catch構文なども含め、コードに分岐がいくつあるかをカウントし、実行されたブロックの割合をカバレッジとして測定します。
if文やswitch文などの分岐をカウントし、実行された分岐の割合をカバレッジとして測定します。ただし、EclEMMAでは例外処理を分岐と見なしません。

P.286 「ソースコードのエンコーディング設定」の6行目(第2刷以降,修正済み)

project.build.sourceEncofingタグ
project.build.sourceEncodingタグ

P.328 ページ中段のボックス内,下から2行目(第2刷以降,修正済み)

もし 3と4を加算したならば
もし 3と4を加算した

P.362 「テストケース」の箇条書きの最後の項目(第3刷以降,修正済み)

Itemが1つ追加されている状態で、addで同じItemオブジェクトを追加すると~
Itemが1つ追加されている状態で、addで異なるItemオブジェクトを追加すると~

P.378 リスト19.9の5行目(第3刷以降,修正済み)

String expected = "Hello" + ls + "World";
String expected = "Hello" + ls + "World" + ls;

P.412 「A.1JDKのセットアップ」の2行目(第3刷以降,修正済み)

Java Runtime Enviroment
Java Runtime Environment

P.421 「テキストファイルのエンコーディング設定」の7行目(第2刷以降,修正済み)

「テスト・ファイルのエンコード」
「テスト・ファイルのエンコード」

巻末付録(第2刷以降,修正済み)

ソースメニューの表示 Ctrl + Alt + S
リファクタリングメニューの表示 Ctrl + Alt + T
ソースメニューの表示 Shift + Alt + S
リファクタリングメニューの表示 Shift + Alt + T