For android all stars in shibuya.
For android all stars in shibuya.
ユニットテストを行うときに困るのが HttpServletRequest等のサーバなどで生成されるインスタンスを 引数としているメソッドのテストです。 そんなときはモックという擬似オブジェクトを 利用したテストを行うのが一般的です。 私もJUnitでテストを行う為にモックを 利用しようと思ったのですが、 昔利用していたmockobjectというライブラリが無くなっていました。(年を感じます;_;) 今はEasyMockやjMockといったライブラリが利用されているようです。 ということで今回、EasyMockを初めて使ってみました。以下、使い方です。 http://www.easymock.org/index.html (バージョンは2.4を使用) まず最初にダウンロードしたら easymock.jarをクラスパスに通します。 次に、 import static org.easymock.
Stack OverflowのTDD Anti-patterns catalogueというスレがとても面白かったので訳してみた。 Stack Overflowのvoting機能でアンチパターンへの投票を行っている感じ。 上から投票の多い順になっている。 得票数はこの記事執筆時点(2013.7.9)のもの。 SQLアンチパターンっぽく、パターン名はそのまま片仮名にしてみた。 また、内容がかなり被っているとか、状況がかなりレアじゃないかと思うものは、一部省略しました。 (ブコメで訳間違ってるよ、って教えてもらったので、一部修正しました 2013.7.10) フリーライド (テストのただ乗り) 50pt 新しいテストケースを書くのではなく、他の機能のテストに新しいアサーションを追加して既存のテストケースに乗っかる。 セカンドクラス シティズン (二等市民) 47pt プロダクションコードのように
Jenkinsでテストの自動化を試みていたわけですが、なんかうまくいかない。 そもそも準備の順序が悪かった。 いきなりリモート環境でJenkinsを動かそうとした ローカル環境でAntを使ってテストの実行をしたことがないのにしようとした 手順を手動で確認する前にネットの情報を鵜呑みにしてやろうとしていた 面倒臭がっていたのが非常によくない。 手動でできないことは自動化できるわけがない。 基本に立ち返って、影響範囲のスコープを狭めて、徐々に自動化していこうと思いました。そこで、まずはAntを使ってアプリのビルドとテストを行なうようにしようと思います。 まず対象プロジェクトをantでビルドするためのbuild.xmlの作成を行ないます。 HelloAndroidプロジェクトのディレクトリにいるとします。 android update project -p . 次に、対象のテストプロジェクトをa
Express3.x(connect2.3+)とSocket.IOでのセッション管理とmochaとsuperagentでexpressを使ったサービスのログイン周りのテストの続き。 今回はsocket.ioの同時接続のテストについて。今回は 1000人同時接続が出来るか 正しくメッセージのやりとりが出来るか(チャットなので) ログイン済みユーザーのみが接続できるか のテストを行なってみました。 socket.io-clientを用いれば、コンソールから同時接続のテストが簡単に出来ます。 ただし、環境によってはOS自体のファイルディスクリプタの最大数を引き上げないと1000人同時接続は難しいです。 ソースコード 今回は今までのを全て含めたものをgithubに上げています。 pxsta / express-socket.io-chat-test 今回の環境 Mac OSX 10.7.4 Lio
今までmochaでのテストをMakefileに書いて実行していたのですが、 npmから実行できるというのを知ったのでそれを試してみたメモです。 環境:MacOS 10.7.3 / nodebrew 0.5.0 / node.js 0.6.12 / npm 1.1.9 Makefile時代 .PHONY: test test: ./node_modules/.bin/mocha \ --colors \ --reporter spec \ --ui tddなんて書いて、 $ make test というふうに実行してました。 Makeは好きですし、いろいろなところで使ってるんですが npmでもできるなら他のものに依存しない方がいいかなーと。 npm時代 package.jsonに { (略) "scripts": { "test": "./node_modules/.bin/mocha" }
Androidテスト部 第二回ミーティングで、 Robolectric とかいう謎の物体の存在を教えてもらったのでやってみた。 @thorikawa さんありがたう! Robolectric って? http://pivotal.github.com/robolectric/index.html 簡単に言うと、PC上でAndroidの一部UnitTestで実行しちゃう!!ってことらしい。 appengineとかは、UnitTestをサーバとか起動する必要なくても簡単に実行できるので、TDD的な意味で開発サイクルでつっかえるところが少なく、非常に開発しやすいと思います!! でも、Androidの場合はアプリのビルド、インストール、テストアプリのビルド、インストール、テストの実行、とサイクルを踏むためすんげー時間がかかります。1回テストをするのに、実機使って20秒、エミュレータの起動からやると
テスト実行時にモックとなる Web サーバを起動して、思い通りのレスポンスを返す環境が作れる NLTHTTPStubServer というツールがある。これを使えば、web API の実行の成功・不成功などのテストが楽に書ける。テスト実行時に叩く API の URL をちょこっと書き換えるだけなので、テストのためにコードを修正する部分は少ないだろうし、実際のアプリケーションの動作とほぼ同じ状態でテストができるはずだ。 NLTHTTPStubServer の導入 NLTHTTPStubServer は以下のライブラリに依存しているので、これらをプロジェクトに追加する。 CocoaHTTPServer - https://github.com/robbiehanson/CocoaHTTPServer CocoaAsyncSocket - CocoaHTTPServer の Vendor に入って
注意! Android Mockについて(2014年6月2日追記) 本記事で紹介しているAndroid Mockは、2012年11月に開発・サポートの終了を宣言されました。より一般的な下記モックフレームワークのDalvik仮想マシン対応がほぼ完了しており、その役目を終えたためです。 Mockito:1.9.5rc-1でDalvik対応がマージされました EasyMock:3.2でDalvik対応がマージされました 新規に作成するプロジェクトでは、これら他のモックフレームワークを使用することをお勧めします。@ITでは、他のモックフレームワーク導入方法を紹介する記事を掲載予定です。 なお、本記事のサンプルコードをMockito向けに書き換えたものを公開しています。以下をご参照ください。 https://gist.github.com/4179494 さらに、EasyMock向けに書き換えたもの
9. class CalculatorTest extends PHPUnit_Framework_TestCase { public function setUp() { $this->calc = new Calculator; } public function test_add_引数の和を返す() { $result = $this->calc->add(1, 2); $this->assertSame(3, $result); } } 10. class CalculatorTest extends PHPUnit_Framework_TestCase { public function setUp() { 1 $this->calc = new Calculator; } public function test_add_引数の和を返す() { $result = $this-
Androidアプリ開発(に限った話ではないですが)でTDDしたいと思ったときに、テスト対象クラスのフィールドをモックで差し替えたい、と思うことがしばしばあります。依存するクラスの振る舞いを固定化することで、テスト対象オブジェクトの振る舞いだけに着目したテストケースを書くことができるからです。 そんな時に、DIコンテナ上でコードを書いていると便利です。以前、少しだけSeasar2+EasyMockでテストを書いていたことがあったのですが、作成したモックオブジェクトの差し替えを、ほぼ全てSeasar2がやってくれたのでものすごく便利でした。 Android開発でもSeasar2+EasyMockくらい簡単にテストを書きたい! ということで、 Android Mockでモックオブジェクトとその振る舞いを定義 RoboGuiceでモックオブジェクトをテスト対象クラスにインジェクト ということをや
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く