ではいよいよ、easybを使ってビヘイビア駆動開発を実践してみよう。
クラスの仕様を決める
今回の例では、「FilePath」というJavaクラスを作ることとする。このクラスはファイルパスを表したもので、以下のような仕様に従うものとする。
- コンストラクタでパス文字列を受け取る。nullを渡されるとIllegalArgumentExceptionを発生する。
- getDirPath()というメソッドを持ち、パス文字列のディレクトリ部分("/a/b/c.txt"であれば"/a/b/"まで)を返す。パス文字列がファイル名だけの場合、このメソッドは長さゼロの文字列を返す。
- getFileName()というメソッドを持ち、パス文字列のファイル部分("/a/b/c.txt"であれば"c.txt")を返す。パス文字列がディレクトリパスだけの場合、このメソッドは長さゼロの文字列を返す。
サンプルということで、ファイルパスの区切り文字はスラッシュしか考慮していない。
イメージとしては、以下のような構造を持つJavaクラスだ。
public class FilePath {
public FilePath(String path) {
}
public String getDirPath() {
}
public String getFileName() {
}
}
TDDと同じく、検証コードを書き始める段階ではこのクラスが存在している必要はない。先に検証コードを書いて実行し、エラーを発生させ、そのエラーを修正していくという形でクラスを作成していけばよい。