Fitnesse チュートリアル(^o^)

Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin Series)

Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin Series)

Fitnesseを.NETで使用するための簡単なチュートリアルを紹介しておく。

インストール

  1. JDK 5.0のダウンロード
    1. ダウンロードページから最新のJDK 5.0(現状ではWindows Platform - J2SE and NetBeans IDE Bundle NB 5.0 / J2SE 5.0 Update 9)をダウンロードする。
  2. JDK 5.0のインストール
    1. インストーラの指示に従ってインストール
  3. Fitnesseのダウンロード
    1. ダウンロードページから最新のFitnesse(現状ではfitnesse20060719.zip)をダウンロードする。
  4. FitNesse and FitLibrary for .Net 2.0のダウンロード
    1. Building FitNesse and FitLibrary for .Net 2.0からdotnet.zipをダウンロードする。
  5. Fitnesseのインストール
    1. ダウンロードしたfitnesse20060719.zipを解凍してC:\fitnesse等に展開する。
    2. C:\fitnesse\dotnet\1.1フォルダを作成し、C:\fitnesse\dotnetのすべてのファイルを移動する。
    3. C:\fitnesse\dotnet\2.0フォルダを作成し、ダウンロードしたdotnet.zipの中身を解凍する。
    4. ポート80が既に使用されている場合はC:\fitnesse\run.batを編集(記述する内容は後述)
    5. C:\fitnesse\run.batを実行してFIT serverを起動する。
    6. ブラウザのアドレスにhttp://localhost:8088/を入力してFitnesseのフロントページを開く

フォルダの階層

C:fitnesse
  |
  dotnet
    |
    1.1
      |
      acceptanceTests.dll
      eg.dll
      fit.dll
      FitLibrary.dll
      FitServer.exe
      TestRunner.exe
    |
    2.0
      |
      acceptanceTests.dll
      eg.dll
      fit.dll
      FitLibrary.dll
      FitServer.exe
      TestRunner.exe
  |
  ...

編集後のrun.bat(ここではポート8088を使用)

java -cp fitnesse.jar fitnesse.FitNesse -p 8088 %1 %2 %3 %4 %5
pause

起動されたFIT server

Fitnesseのフロントページ

テスト用ページの作成

  1. MyFirstPageを作成
    1. ブラウザのアドレスにhttp://localhost:8088/MyFirstPageを入力
    2. create this pageのリンクからWikiページを作成
  2. MyFirstPageでDotNetFitServerを使用するための設定(記述する内容は後述)
    1. 参考:DotNetFitServer
    2. ページを保存する。

MyFirstPageの作成

MyFirstPageの編集用ページ

MyFirstPageの編集用ページでDotNetFitServer(.NET Framework 2.0用)を使用するために入力する内容

!define COMMAND_PATTERN {%m %p}
!define TEST_RUNNER {dotnet\2.0\FitServer.exe}
!define PATH_SEPARATOR {;}

.NET Framework 1.1用なら2行目を以下に書き換える

!define TEST_RUNNER {dotnet\1.1\FitServer.exe}

テストの作成

  1. テストの記述
    1. MyFirstPageの左のリンクからEditボタンでページを編集してテストの記述を行う(記述する内容は後述)。
    2. ページを保存する。
  2. プロパティの設定
    1. MyFirstPageの左のリンクからPropertiesボタンでプロパティページを開く
    2. Actions:のTestのチェックボックスにチェックをつける
    3. Save Propertiesボタンで変更を保存する。
    4. MyFirstPageの左のリンクにTestボタンが追加されたことを確認する。

テストの記述(4行目以降)が行われた後のMyFirstPageの内容

!define COMMAND_PATTERN {%m %p}
!define TEST_RUNNER {dotnet\2.0\FitServer.exe}
!define PATH_SEPARATOR {;}
|Division|
|Numerator|Denominator|Quotient?|
|10       |2          |5        |
|12.6     |3          |4.2      |
|100      |4          |25       |

プロパティページ

設定後のMyFirstPage

テストの実行

  1. 試しにテストを実行
    1. MyFirstPageの左のリンクからTestボタンでテストを実行させる。
    2. まだ受け入れテスト用の.NETアセンブリを作成していないので例外が発生する。

例外が発生して失敗したテスト

受け入れテスト用の.NETアセンブリの作成

  1. 受け入れテスト用プロジェクトの作成
    1. Visual Studio 2005を起動する。
    2. C:\workにFitnesseTutorialソリューション(空のソリューション)を作成
    3. C:\work\FitnesseTutorial\srcにFitnesseTutorial.AcceptanceTestsクラスライブラリプロジェクトを追加
    4. FitnesseTutorial.AcceptanceTestsプロジェクトにC:\fitnesse\dotnet\2.0\fit.dllの参照を追加
    5. Class1.csの名前をDivision.csに変更
    6. Division.csの仮実装(記述する内容は後述)
    7. F6キーでソリューションをビルドする。

FitnesseTutorialソリューションの作成

FitnesseTutorial.AcceptanceTestsプロジェクトの追加

fit.dllの参照を追加

Division.csの仮実装

  • ネームスペースは記述しないこと
  • fit.ColumnFixtureのサブクラスにすること
using System;
using fit;

public class Division : ColumnFixture
{
    public double Numerator = 0.0;
    public double Denominator = 0.0;

    public double Quotient()
    {
        return 1.0;
    }
}

受け入れテスト用の.NETアセンブリのパスを記述

    1. MyFirstPageの左のリンクからEditボタンでページを編集して受け入れテスト用の.NETアセンブリのパスの記述を行う(記述する内容は後述)。
    2. ページを保存する。

パスの記述(4行目)が行われた後のMyFirstPageの内容

!define COMMAND_PATTERN {%m %p}
!define TEST_RUNNER {dotnet\2.0\\FitServer.exe}
!define PATH_SEPARATOR {;}
!path C:\work\fitnessetutorial\src\FitnesseTutorial.AcceptanceTests\bin\Debug\FitnesseTutorial.AcceptanceTests.dll
|Division|
|Numerator|Denominator|Quotient?|
|10       |2          |5        |
|12.6     |3          |4.2      |
|100      |4          |25       |

再度テストの実行

    1. MyFirstPageの左のリンクからTestボタンでテストを実行させる
    2. テストの実行は成功するがDivisionを正しく実装していない(固定値を返している)ためにアサーションが失敗する。

アサーション失敗実行結果

受け入れテストの本実装

    1. Division.csの本実装(記述する内容は後述)
    2. F6キーでソリューションをビルドする。

Division.csの本実装

using System;
using fit;

public class Division : ColumnFixture
{
    public double Numerator = 0.0;
    public double Denominator = 0.0;

    public double Quotient()
    {
        return Numerator / Denominator;
    }
}

#実プロジェクトではターゲットとなるクラスのprivateインスタンス変数を作成して実際にメソッド呼び出しを行うことになるだろう。

再度テストの実行

    1. MyFirstPageの左のリンクからTestボタンでテストを実行させる
    2. アサーションは成功する。

アサーション成功実行結果

以上。

via:Getting up and running with Fitnesse.NET