SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Eclipse 3.4からはじめるIDE入門

Eclipse 3.4を使ったデバッグとテスト~Eclipse 3.4 入門~

第5回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Eclipseのテスト支援機能 - JUnit(1)

 Eclipseに標準装備されている単体テスト支援機能がJUnitです。JUnitはJavaプログラムの単体テストを自動化するツールで、特定のメソッドだけをテストしたり、複数のテストを一気に行うこともできます。Eclipseバージョン3.4.1にはJUnit3とJUnit4が用意されており、多くの機能がありますが、今回は「JUnit3による単体テスト用のテストケースの自動作成と利用」の基礎を紹介します。

 JUnitのテストケースとは、テストしたいクラスに記述されたメソッドに対応して、テスト用のメソッドを作成した特殊なクラスです。このクラスは自動的に作成が可能で、junit.framework.TestCaseクラスのサブクラスになります。

 では、説明用に、テストしたいクラスを用意します。デバッグ支援機能の説明に用いたHelloFuncクラスをコピーしてHelloFunc2クラスとし(パッケージ・エクスプローラー上で元のクラスを右クリックして「コピー(C)」し、パッケージを右クリックして「貼り付け(P)」を実行すると「名前の競合」ダイヤログが表示されるので新しい名前を入力する)、値がゼロである要素数を返すcountZero(int[])メソッドを追加します。しかし、このメソッドには要素[0]を数えないというバグを仕込んでおきます。

// HelloFunc2クラス(HelloFunc2.java)
package hellopac;
public class HelloFunc2 {
  // 整数の配列を受け取って、その総和を返す
  int sumArray(int[] p){
    for(int i = 1; i < p.length; i++){
      p[0] += p[i]; // 各要素の値を足しこむ
    }
    return p[0]; // 総和を返す
  }
  // 整数の配列を受け取って、値がゼロである要素数を返す
  int countZero(int[] p){
    int count = 0;
    for(int i = 1; i < p.length; i++) // ここにバグがある
      if(p[i] == 0) count++; // ゼロである要素を数える
    return count; // 要素数を返す
  }
}

単体テスト用のテストケースの自動作成

 では、JUnitを用いて、単体テスト用のテストケースを自動作成します。パッケージエクスプローラーで、テスト対象のHelloFunc2クラスを右クリックし、[新規(W)]-[JUnitテスト・ケース]を実行します。

図21:[新規(W)]-[JUnitテスト・ケース]を実行
図21:[新規(W)]-[JUnitテスト・ケース]を実行

 すると「新規JUnitテスト・ケース」ウィンドウが表示されます。初回は「スーパー・クラスが存在しません」という警告が出ますが、これはJUnit3ライブラリーがビルドパス(ビルド時に検索されるフォルダの一覧)に含まれていないためです。後ほど指定するので、無視して構いません。テスト元クラスが「hellopac.HelloFunc2」であることを確認して[次へ]をクリックします。

図22:「新規JUnitテスト・ケース」ウィンドウで[次へ]をクリック
図22:「新規JUnitテスト・ケース」ウィンドウで[次へ]をクリック

 テストメソッドの選択画面になりますので、今回の対象であるsumArrayメソッドと、countZeroメソッドのチェックボックスをオンにし、[終了]をクリックします。

図23:sumArrayメソッドと、countZeroメソッドのチェックボックスをオンにし、[終了]をクリック
図23:sumArrayメソッドと、countZeroメソッドのチェックボックスをオンにし、[終了]をクリック

 初回のみ「JUnit3がビルド・パスにありません。追加しますか?」と表示され、処理選択が求められます。「次のアクションを実行」が選択されていることを確認して[OK]をクリックします。

図24:「次のアクションを実行」が選択されていることを確認して[OK]をクリック
図24:「次のアクションを実行」が選択されていることを確認して[OK]をクリック

 テストケース「HelloFunc2Test」クラスが自動作成され、エディター・ビューに表示されます。

図25:自動作成されたテストケース「HelloFunc2Test」クラス
図25:自動作成されたテストケース「HelloFunc2Test」クラス

 対象のメソッドごとにテスト用のメソッドが作成されています。

次のページ
Eclipseのテスト支援機能 - JUnit(2)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Eclipse 3.4からはじめるIDE入門連載記事一覧

もっと読む

この記事の著者

平野正喜@ランドッグ・オーグ(ヒラノマサキ)

フリーのIT系執筆者&講使(※)の「ランドッグのマウ」こと平野正喜(HIRANO Masaki)です。【略歴】 1962年札幌市生まれ。今で言うIT企業のシステムエンジニア、プロジェクトリーダー、システムコンサルタント、採用担当などを経て独立し、2002年11月にランドッグ・オーグ平野正喜事務所(h...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3612 2009/02/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング