以前LTでしゃべった内容をブログ用に再構成してみます
WHY ?
RateLimitに引っかかってた(;´Д`)
- API 1.0
- アカウント全体で350回/h
- API 1.1
- API単位で15 or 180回/15分
- https://dev.twitter.com/docs/rate-limiting/1.1/limits
一度に同じAPIを大量に使うと規制される&Jenkinsのビルドも通らないorz
解決策
Groovy基礎勉強会 で @mike_neck さんに教えてもらったBetamaxを使った。
AZusaar!!でやったこと
pom.xml
betamaxとgroovyを追加
<project> <dependencies> <dependency> <groupId>co.freeside</groupId> <artifactId>betamax</artifactId> <version>1.1.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <version>2.1.2</version> <scope>test</scope> </dependency> </dependencies> </project>
テストケース
public class SomeTest{ @Rule public Recorder recorder = new Recorder(); @Betamax(tape="SomeTest#yourTest", match={MatchRule.uri}) @Test public void yourTest() throws Exception { // do something } }
- テストメソッド単位でtapeの名前を一意にした
- matchはyamlを読み込む時の条件(上記の例ならuriが一致したらそのyamlを読み込む)
- 初回のテスト実行時にsrc/test/resources/betamax/tapesにyamlが保存されるので2回目以降はそれが参照される(READ_WRITEモード)
- READ_WRITEモードの他にもWRITE_ONLYモードやREAD_ONLYモードもある
- yamlをcommitしておけばjenkinsでも同じ結果を返せる
参考リンク
参考書籍
API 1.1対応マダ-?
Twitter API ポケットリファレンス (POCKET REFERENCE)
- 作者: 山本 裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/15
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 247回
- この商品を含むブログ (41件) を見る
Ruleの使い方とか
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (46件) を見る