Skip to content

Instantly share code, notes, and snippets.

@civitaspo
Last active November 1, 2015 09:40
Show Gist options
  • Save civitaspo/49a287652eeb3abe89f5 to your computer and use it in GitHub Desktop.
Save civitaspo/49a287652eeb3abe89f5 to your computer and use it in GitHub Desktop.
Qiita投稿用draft: Embulk Plugin の Task の書き方

はじめに

これまでEmbulkのPluginをいくつか書かせてもらってきましたが、初期の頃はテスト用のAPIが整備されていなくて後回しにしてきました。 この記事は、そろそろ書かねばという気持ちになり、奮闘した時のメモです。良かったら参考にしてくだい。

おことわり

  • Pluginの単体テストに焦点を絞ってます。クラスやメソッドの単体テストは普通に書けると思うので省略します。
  • 現存するPluginのテストやEmbulkのコードを参考にして書いてますが、これよりいい方法があるかもなので知っている方がいたら教えて下さい。
  • Encoder/Decoderでも同じ方法でテストできるのか試してません。(-> ためす)
  • Javaを書き始めて、まだ日が浅いので作法などで問題有りましたら、連絡いただけると嬉しいです。

INDEX

  1. 依存関係の追加
  2. EmbulkTestRunner を使ってテストを書いてみる
  3. MockParserPlugin.java
    • カラム定義に従って定数を返す
  4. MockFormatterPlugin.java
    • カラム定義に従って渡ってきた値をvisitするだけ
  5. 参考にしたサイトとか
  6. あわせて読みたい

依存関係の追加

build.gradle に以下のように依存関係を追加します。

// ...

dependencies {
    compile  "org.embulk:embulk-core:0.7.+"
    provided "org.embulk:embulk-core:0.7.+"
    // compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
    testCompile "junit:junit:4.+"
    testCompile "org.embulk:embulk-core:0.7.+:test"
}

// ...

参考にしたサイトとか

あわせて読みたい

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment