第6章.テスト

Rhodesでは、テストを行う際に、テストプログラムを実行させることができます。この章では、テストプログラムについて記述します。

第1節.テストプログラムを使用する準備

テストプログラムを使用する準備を行っていきます。現在RhoStudioでは、rhodesのテストプログラムを実行する機能がありません。なので、ここからは、コマンドプロンプトおよびターミナルで作業を行っていきたいと思います。コマンドプロンプトおよびターミナルを起動してください。

起動しましたら、cdコマンドで、Rosterプロジェクトのトップフォルダまで移動してください。Rosterフォルダに移動しましたら、まずテストを行うために必要なファイルを生成します。以下のコマンドを実行してください。

 

rhogen spec

 

コマンドを実行すると以下のファイル、フォルダが作成されると思います。

•       app/mspec.rb

•       app/SpecRunner

•       app/spec_runner.rb

上記のファイルがテストを実行する上で必要になります。

実際に実行されるテストファイルは、Roster/test/フォルダの中のRubyファイルになります。ここでは、Roster/test/roster_spec.rbファイルになります。

 

 

続いて、テストを行うためには、bulid.ymlの編集が必要になります。

RhoStudioからbuild.ymlを表示してください。開きましたら、ウィンドウ下部にある、「build.yml」を選択してウィンドウを切り替えてください。(下記画像の赤丸を参照)

 

image066.jpg

 

ウィンドウが切り替わりましたら、build.ymlの中身がテキスト表示されています。そこで「extensions:」項目に「fileutils」と「mspec」の項目を下記のように追加してください。変更箇所は26行目と27行目です。

 

24 |extensions:

25 |  - json

26 |  - another-extension

27 |  - fileutils

28 |  - mspec

 

 

変更が完了しましたら保存をしてください。

 

次にテストプログラムを実行させるために、リンクの設定を行います。Rhodesでテストプログラムを実行するには、対象のアクションを呼び出す必要があります。

それでは、Roster/app/index.erbファイルを開いてください。20行目に以下を追加してください。

 

20 | <li><a href="SpecRunner">テスト実行</a></li>

 

 

変更が完了したら、保存をして、エミュレータへの転送を行ってください。

エミュレータを起動すると以下の画面が起動しますので、「テスト実行」のリンクをクリックしてください。

 

image072.jpg

 

「テスト実行」のリンクをクリックしたら、RhoStudioを表示してください。テストの結果が画面下部の「Console」ウィンドウに表示されています。

 

image074.jpg

 

このようにして、Rhodesではテストプログラムの実行結果をログでみるようにします。

出力結果の「APP |  ***Total:    1」はテスト数を表示しています。

APP | ***Passed:    0」はテストでOKの数を表示しています。

APP | ***Failed:    1」はテストのNGの数を表示しています。

今回の実行結果は、1つのテストの内、成功数0で、失敗数1となっています。それでは、実行されたテストファイルをみてみたいと思います。

Roster/test/roster_spec.rbファイルを開いてください。内容は以下となっています。

 

01 |describe "Roster" do

02 |  #this test always fails, you really should have tests!

03 |

04 |  it "should have tests" do

05 |    true.should == false

06 |  end

07 |end

 

実際の判定処理は5行目の「true.should == false」になります。このテストは「truefalseですか?」という判定になります。よって、テスト結果にはfalseが返り、テスト失敗となります。

システム工房エムのサイトへのリンク

住所〒690-0017 島根県松江市西津田3-2-3 TEL.0852-23-8590 FAX.0852-23-8591
Copyright 2008-2010 System Maker M,All right reserved