2014年6月17日火曜日

VBAでさらに手軽にTDDする。

【概要】

前回、VBAのユニットテスト用モジュール Assert.basを利用して、手軽にユニットテストする(テスト駆動開発;TDDする)方法について、『VBAで手軽にTDDする。(Assert.basの使い方) 』にまとめました。

オリジナルのAssert.basでは、Wordで使う際に微修正が必要、ユニットテスト実行に2,3メソッドを実行する必要がありました。

この2点が、ちょっとテストしたいといった場合には、なんだかまどろっこしいので、本家をforkして、暫定的な対策を施したものを作成しました。

【変更点】

以上の変更により、ユニットテストの実行は、
  • 1回目は、イミディエイトウィンドウに Assert.RunTest を入力してEnter
  • 2回目以降は、イミディエイトウィンドウで(先にAssert.RunTestを記入した行にカーソルを合わせて)Enter のみでOK
になります。

特にTDDしたいとき(例えば、無駄に大きなメソッドをリファクタリングしたいとき)には
  • テスト追加 
  • → イミディエイトウィンドウでEnter [無事Passしなかったら]
  • → コード修正
  • → イミディエイトウィンドウでEnter
  • → [Passしたら] テスト追加
  • → … (最初に戻る) …
と最小限のインタラプト(Enter押すだけ)でテストを繰り返せるので、だいぶストレスフリーになるかと思います。(私感)

【配布先】

Ariawase-1/src/Ariawase.xlsm/Assert.bas at prototype · dck-jp/Ariawase-1  にて公開しています。
Assert.bas のみダウンロードして本家と差し替えて利用可能です。

【本家】

本家Assert.bas (を含むAriawase ライブラリ集)は下記に公開されています。
Releases · vbaidiot/Ariawase