Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

テスト駆動開発の意味

テスト駆動開発の利点が何なのかがわかったので記しておきます(注:ワタシなりの解釈であり確実に正しいかどうかはわかりません)。

テスト駆動開発とは

まずテスト駆動開発とはなにか説明します。テスト駆動開発とはプログラム開発技法の1つです。その名の通りテストを駆動させて開発します。ではどのようなテストを書くのでしょうか??それは失敗するテストです。もちろんはじめは失敗する、です。まず例えばHello worldと返す関数を作るとします。この時、テスト用の関数Testを作ります。このTestは必ず失敗するように組みます。

var Test=fucntion(){
    if(helloWorld()=="hello world") console.log("ok");
    else console.log("ng");
}

次にこのTestをパスできるような関数を作っていきます。この時のポイントは最小限でつくること、です。最小限のため、まずは関数を作ります。

var helloWorld=function(){}

もちろんこれではダメです。次に値を返すように組みます。

var helloWorld=function(){return "hello world"}

これでテストを通すことができました。

テスト駆動開発のメリット

テスト駆動開発のメリットは最小限でコードを作るところにあると思います。これはつまり無駄なコードを書かないということです。そのため思考力の向上にもいいです。また、テストを常に書くのでちゃんと動作しているかがすぐに分かります。実は細かいことを言うとテストを通すためならコピペして似た関数など無駄なコードを作ってもいいですが、後にリファクタリング(重複の除去)をしないといけないというルール?があります。

終わりに

テスト駆動開発はとても有効な手段でテストの書き方さえ慣れればとても便利なツールだと思います。ワタシも使いこなせるようになりたいです。