VBAをRubyでテストする(4)

今回 テスティングフレームワークRSpec を使用します。

RSpec をインストール

コマンドプロンプトを起動し、Rubyのバージョンを確認する。
f:id:jsuo:20131121171016p:plain

コマンドプロンプトに install コマンドを入力する。

>gem install rspec

RSpecが無事にインストールされていることを確認する。
f:id:jsuo:20131121172206p:plain


exlap.rb

Rubyから直接Excelを扱うのは多少やり辛いため 何かないかと探したことろ
T. Yoshiizumi氏 作成の exlap という良さげなライブラリが見つかりました。
使わさせて頂きます。ありがとう T. Yoshiizumi氏
T. Yoshiizumi - Excel用ライブラリexlap.rbの使い方

DLした exlap.rb を受注検索.xlsmと同じフォルダに保存し練習としてテストコードを書いてみます。
受注検索.xlsmに標準モジュール Module1 を追加し
Module1 に sayHelloプロシージャを書きます。
見てのとおり引数を渡すと ヘロー!{名前} と返すだけの処理です。

Option Explicit
Function sayHello(ByVal str As String) As String
    
    If Trim(str) = "" Then str = "名無し"
    
    sayHello = "Hello! " & str

End Function


sayHello_spec.rb を新規作成し sayHelloプロシージャのテストコードを書きます。

コマンドプロンプトから rspecコマンドでテストを実行します。

>rspec -fs sayHello_spec.rb

実行結果は 0 failures でした。問題ないようです。
f:id:jsuo:20131121224036p:plain


社員モデルクラスのテストコードを書く

テストを実行します。

>rspec -fs mdlEmployee_spec.rb

実行結果です。問題ないようです。
f:id:jsuo:20131122220200p:plain


RSpecに関しては「The RSpec Book」が参考になりました。