前回に続いてshunit2のお話。
今回はいよいよRed/Greenテストの開始です。
実際のところ
つかってみる
ではまず失敗するファイルをつくりましょう
#! /bin/sh myFunc() { echo 0 } testEquality() { value=`myFunc` assertEquals 1 "$value" } # Load shUnit2. source shunit2
意図通りREDになります。
$ ./testsh.sh testEquality ASSERT:expected:<1> but was:<0> Ran 1 test. FAILED (failures=1)
では、こいつをgreenにしてきましょう
#! /bin/sh myFunc() { echo 1 } testEquality() { value=`myFunc` assertEquals 1 "$value" } # Load shUnit2. source shunit2
実行すると……はい、緑になりまし……たっ!*1
$ ./testsh.sh testEquality Ran 1 test. OK
二個目のテストとコメント追加
テスト増やしていくとわけがわからなくなるので、コメントを増やしていきましょう。
今度はassertの引数を三つにします。
一個目がコメント、二個目が期待値で三個目が実際の値です。
#! /bin/sh myFunc() { echo 1$1 } testEquality() { value=`myFunc` assertEquals "myFuncTest simple" 1 "$value" } testEqualityWithValue() { value2=`myFunc 12` assertEquals "myFuncTest with value" 1 "$value2" } # Load shUnit2. source shunit2
$ ./testsh.sh testEquality testEqualityWithValue ASSERT:myFuncTest with value expected:<1> but was:<112> Ran 2 tests. FAILED (failures=1)
緑にしてきましょう。
#! /bin/sh myFunc() { echo 1$1 } testEquality() { value=`myFunc` assertEquals "myFuncTest simple" 1 "$value" } testEqualityWithValue() { value2=`myFunc 12` assertEquals "myFuncTest with value" 112 "$value2" } # Load shUnit2. source shunit2
OK
$ ./testsh.sh testEquality testEqualityWithValue Ran 2 tests. OK
あとはこんな感じでどんどん追加です。
参考もと
*1:元ネタわかってない