S-JIS[2010-04-18] 変更履歴

Cascading 単体試験

Cascadingの単体試験用クラスについて。


Cascadingの単体テスト

Cascadingの単体試験用に、JUnitのTestCaseクラスから派生したCascadingTestCaseというクラスが用意されている。

このクラスを使う為には、CASCADING_HOME/cascading-test-*.jarをクラスパス(Eclipseのビルドパス)に加える必要がある。
(このjarファイルへのソースの添付には(Cascading本体のjarファイルと同様に)CASCADING_HOME/srcを指定する。)

このクラスはJUnit3.8系らしい。
HadoopのライブラリーにHADOOP_HOME/lib/junit-3.8.1.jarがあるので、これをビルドパスに含めればいい。

CascadingTestCaseには、Operation系クラス(FunctionFilterAggregatorBuffer)をテストする為のメソッドが用意されている。

メソッド名 概要 備考
invokeFunction() Functionを実行する。
関数の出力結果のTupleListCollectorが返る。
 
invokeFilter() Filterを実行する。
isRemove()の結果が返る。
 
invokeAggregator() Aggregatorを実行する。
集約関数の出力結果のTupleListCollectorが返る。
collectorが用意されるのはcomplete()メソッドのみ。
つまりaggregate()でタプルを出力した場合は
collectorに入ってこないので、テスト失敗になる。
invokeBuffer() Bufferを実行する。
出力結果のTupleListCollectorが返る。
 

例えば平均を算出するAverageクラスのテストケースとしてAverageTestというクラスがcascading-test-*.jarに含まれており、EclipseのJUnit機能で実行すれば、実際に動作させることが出来る。
どのようにテストをコーディングすればよいかのサンプルになるだろう。


Cascadingへ戻る / Hadoopへ戻る / Java目次へ行く / 技術メモへ戻る
メールの送信先:ひしだま