VBS Testerの使い方
テスト結果をメールで受信する場合、Address.iniをテキストエディタで開き、当該ファイルにテスト結果を送信したいメールアドレスを登録します。
登録は、つぎのようにメールアドレスを1行ずつ入力します。
mail_address1@gmail.com mail_address2@gmail.com mail_address3@gmail.com
「VBS Tester」のメール送信機能は、メーラーがOutlookの場合のみ有効です。もし、Outlook以外のメーラーを使用されている場合、もしくはメール送信機能が不要であれば、VbsTester.vbsを開き、SendLog()メソッドおよびDeleteLog()メソッドを削除してください。
Private Sub SendLog()
Dim olApp
Set olApp = CreateObject("Outlook.Application")
Dim myItem
Set myItem = olApp.CreateItem(0)
Set olApp = Nothing
myItem.To = Replace(ReadText(VBS_TESTER_ADR_NAME), vbCrLf, ";")
myItem.Subject = "From VbsTester"
myItem.Body = ReadText(VBS_TESTER_LOG_NAME)
myItem.Send
End Sub
Private Sub DeleteLog()
Dim fileObj
Set fileObj = fso.GetFile(VBS_TESTER_LOG_NAME)
fileObj.Delete
Set fileObj = Nothing
End Sub
DeleteLog()メソッドを削除すると、VbsTester.vbsと同じディレクトリに、VbsTester.logというテキストファイルでテスト結果を出力します。
次に、テストケースを作成します。
「VBS Tester」では、拡張子が「.inc」となっているファイルをテストケースが記述されているファイルとして認識します。同梱されているTestSample1.incやTestSample2.incを参考にテストケースを作成してください。修正する箇所は、ExecuteText()メソッドのみです。
Option Explicit
Class Tester
Private mLog
Private Sub Class_Initialize()
mLog = ""
End Sub
Public Property Get Log()
log = mLog
End Property
Private Property Let Log(ByVal sLog)
mLog = sLog
End Property
Private Function Include(ByVal fileName)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Include = fso.OpenTextFile(fileName, 1, False).ReadAll()
Set fso = Nothing
End Function
Private Sub Test(ByVal bIdn, ByVal msg)
Dim sLog
If (bIdn) Then
sLog = msg & " ---> OK"
Else
sLog = msg & " ---> NG"
End If
If Not (Log = "") Then
Log = Log & vbCrLf
End If
Log = Log & sLog
End Sub
'************************************************************
' Test Pattern
'************************************************************
Public Sub ExecuteTest()
Execute Include(".\sample_source\Sample1.vbs")
'+++ Calc1 +++
Call Test(Calc1(1, 2) = 3, "Calc1")
Call Test(Calc1(3, 4) = 7, "Calc1")
Call Test(Calc1(5, 6) = 7, "Calc1")
End Sub
End Class
ExecuteTest()メソッド内の1行目で、テストしたいVBSモジュールを指定します。
Execute Include(Extension)
- Extension:VBSモジュールのパス
次に、メソッドのテストケースを記述します。 テストケースは、Test()メソッドで記述します。
Test()メソッドは、次のように指定します。
Test(TestCase, TestCaseName)
- TestCase:テストケース
- TestCaseName:テストケース名
Test()メソッドは、パラメータに指定されたテストケースが真(True)となるように記述します。
このサンプルをみると、「sample_source」フォルダにSample1.vbsというVBSがあります。このVBSには、Calc1()というメソッドがあります。Calc1()メソッドは、パラメータに指定された2つの値を加算します。
ExecuteTest()メソッド内のテストケースでは、
Call Test(Calc1(1, 2) = 3, "Calc1") Call Test(Calc1(3, 4) = 7, "Calc1") Call Test(Calc1(5, 6) = 7, "Calc1")
となっていますので、1行目は「1+2=3」で真、2行目も「3+4=7」で真(True)ですが、3行目は「5+6=7」となっていますので、偽(False)です(テストケースが正しいのなら、Calc1()メソッドは、「1+2=3」「3+4=7」「5+6=7」となるメソッドでなくてはならない)。
テストファイルに記述されているテストケースが、VbsTester.vbsの実行によってテストされます。
件名: From VbsTester 本文: Calc1 ---> OK Calc1 ---> OK Calc1 ---> NG Calc2 ---> OK Calc2 ---> OK Calc2 ---> NG
5. まとめ
VBScriptは、定型業務を自動化するバッチ処理として使用されることが多く、規模の大きい開発に使用されることは稀でしょう。そのため、わざわざテストケースを書くほどのことではないかも知れません。しかし、大勢の人の目に留まる機会があれば、きっと誰か使ってくださり貴重なフィードバックもいただけるのではないかと思い、今回紹介させていただきました。
拙いツールではありますが、ご意見・ご要望がありましたら、「フリープログラミング団体 いかちソフトウェア」までご一報いただければ幸いです。
