TestBoxでColdFusionのユニットテスト
概要
Coldfusionでユニットテストを実行する環境を準備する。
TestBoxとは
TestBoxは、BDD(Behavior Driven Development)に基づくColdFusion(CFML)の次世代テストフレームワークであり、テストを作成するための明確でわかりやすい構文を提供します。 テストフレームワーク、ランナー、アサーション、期待値ライブラリだけでなく、MockBox、A Mocking&StubbingFrameworkも付属しています。 また、xUnitスタイルのテストとMXUnitの互換性もサポートしています。
いろいろ書いてあるが要はColdFusionでユニットテストを実現するためのフレームワーク。
環境セットアップ
TestBoxをインストールするためにまずはCommandboxでColdFusionサーバを立ち上げる。 Commandboxのセットアップについては以前の記事を参照。
CommandBox> server start cfengine=adobe@v2021.0.04+330004
続いてTestBoxをインストール
CommandBox> box install testbox
runnerを生成
CommandBox> testbox generate harness
ユニットテストファイルを作成
CommandBox> testbox create unit name=tests/MyTest.cfc
tests/runner.cfm のcoverageEnabledをfalseに変更。 カバレッジを取得するにはFusionReactorという有償オプションが必要なため無効化する。(デフォルト有効でそのままテストを実行しようとするとエラーになる。)
<cfparam name="url.coverageEnabled" default="false">
テスト実行
CommandBox> testbox run ... ╔═════════════════════════════════════════════════════════════════════╗ ║ Passed ║ Failed ║ Errored ║ Skipped ║ Bundles ║ Suites ║ Specs ║ ╠═════════════════════════════════════════════════════════════════════╣ ║ 4 ║ 0 ║ 0 ║ 3 ║ 1 ║ 1 ║ 7 ║ ╚═════════════════════════════════════════════════════════════════════╝ TestBox v4.5.0 CFML Engine ColdFusion Server v2021,0,04,330004 Duration 1,758ms Labels --- √ Passed - Skipped !! Exception/Error X Failure
まとめ
- 実行環境にCommandboxが必要。
server start
でlocalhostの開発サーバを起動しておく必要がある。 - テストを実行するにはrunner.cfmが必要。
- カバレッジを無効化しないと実行時にエラーとなる。
セットアップは以上。テストコードの書き方とモックの使い方については次回。