スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

事前条件を設定し事後条件を確認するテストライブラリ

ある機能をテストする時に実行前のDBの状態を設定して(事前条件)、機能の実行後にDBの状態を確認する(事後条件)テストライブラリを作りました。

テストプログラムでは機能の実行前にDBの状態を準備するコードや、DBの状態を確認するコードでぐちゃぐちゃになりやすいですが、その部分をスプレッドシートに切り出しているのでテストコードがすっきりします。

rubyで作ったのでrspecと組み合わせると便利かと思います。
インストールは以下の通り。
gem install condition

ソースはgithubにおいてあります。

事前条件と事後条件はスプレッドシート(ExcelとかLibreOfiiceとか)に記述します。
1つのシートに事前条件か事後条件を記述します。
1つのシートに複数のテーブルを書く事は可能です。

・事前条件
事前条件

・事後条件
事後条件

事前条件はサンプルを見ればわかると思います。
事後条件のテーブル名の横にあるカラムの意味は絞り込み条件のカラムということです。
このカラムに一致しているデータに対して残りの値が一致しているか確認します。
絞り込みのカラムは複数設定できます。

テストコードは以下の通り。
describe "api" do
it "/aaa" do
pre = Condition::Pre.new(FILES + '/t_test.ods')
pre.exec(DB)
client = HTTPClient.new
client.get_content(BASE_URL + '/aaa').should == "bbb"
post = Condition::Post.new(FILES + '/t_test.ods', 1)
post.exec(DB)
end
end


うーん、すっきり。
詳細はソースとソースの中のspecとか見てください。
今後は入力パラメーターと出力パラメーターもスプレッドシートに切り出して、全ての「should」を葬り去りたいかも。

実際に使う時はテスト用のDBを用意してください。現在の動作では事前条件に指定したテーブルのデータは全削除してから、データを投入しています。データが壊れても良い環境で試してください。
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。