FitnesseとRubySlimを使ってでエンドツーエンドを書いてみました。
なんどもおんなじネタで恐縮だけれども、FitNesseとRubySlimを利用して、エンドツーエンドを実装してみました。
この記事は、以下の記事の延長になります。
- 組込み開発のシステムテスト・機能テストを自動化できるか?Rubyのminitestで非同期テストを実施する方法を本気出して考えてみた | Futurismo
- ミライの組込み開発!vagrant × sahara × minitestで実現する仮想エンドツーエンドテスト | Futurismo
- teratermマクロで自由自在にエンドツーエンドを書く!TTLのためのxUnitフレームワーク「TTLUnit」 | Futurismo
FitNesse テストケースの用意
まずは、テストケースのページの作成です。
これは、前回の記事のまんま。
!contents -R2 -g -p -f -h
!define TEST_SYSTEM {slim}
!define TEST_RUNNER {/home/tsu-nera/src/ruby_fitnesse/rubyslim/bin/rubyslim}
!define COMMAND_PATTERN {ruby -I %p %m}
!define PATH_SEPARATOR { -I }
!path /home/tsu-nera/src/ruby_fitnesse/tests
こんな感じで、Decision Tableを作成しました。
|make directory |
|command |expect |get result?|
|mkdir testdir |testdir |0 |
|mkdir testdir2|testdir2|0 |
|mkdir testdir3|testdir4|0 |
Custom Fixturesの用意
ここからが本題。RubyでCustomFixtureを作成します。
/home/tsu-nera/src/ruby_fitnesse/testsに Test Fixtures作成。
なかなかウマクイカなかったので、こんな実験用コードも書いた。
require "./make_directory"
include Fixtures
@foo = MakeDirectory.new
@foo.set_command("mkdir testdir")
@foo.set_expect("/testdir/")
@foo.get_result
@foo = nil
これで、準備完了!Webからテストを実行します。
テスト結果のログは、‘Output Capture’というところをクリックすると見れる。障害調査も完璧。