BT

Mockito 1.5によるプレーンオブジェクトの偵察

| 作者: Matthew Bass フォローする 0 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年9月22日. 推定読書時間: 2 分 |

Mockito(リンク)は、Java向けのmockフレームワークである。EasyMockやjMockと酷似しているが、実行後に呼び出された内容を検証することで、expectationの必要性を除去する。他のmockライブラリは、実行前にexpectationを記録することを必要とする。その結果、設定コードが見苦しくなる傾向にある。

Mockitoユーザで、ソフトウェアデベロッパのHamlet D'Arcy氏(リンク)がブログで説明しているように、expectationが欠落しているのは、思わぬ幸運である。

 

「Mockito は、expectaionを必要とせずにユニットテストをクリーンアップします。そんな訳で、個人的にはEasyMock APIよりMockito APIのほうがかなり好きです。

ThoughtWorksのKetan Padegaonkar氏(リンク)は、 Mockitoの類のない構文を褒めちぎっている。

 

「これはJMock構文よりもかなり見栄えが良く、読み出しも申し分ないです。一目惚れでした。テストに夢中です」。

Mockito 1.5のリリースでは、非mockオブジェクトが特定のメソッドで呼び出されたことを検証することで、非mockオブジェクトを「偵察する」機能がある。たとえば、

 

List list = new LinkedList();
List spy = spy(list);

「偵察」変数は、そのリストオブジェクトのハンドルとして機能する。mockオブジェクトのように取り扱われる。たとえば、サイズメソッドはスタブされる。

 

stub(spy.size()).toReturn(100); 

通常のメソッドも呼び出し、検証することができる。

 

spy.add("one");
verify(spy).add("one");

その他の改善点は、代替でさらに読み取り可能なスタブ構文である。たとえば、

 

stub(obj.someMethod()).toReturn(result);

以下のように記述することができる。

 

doReturn(result).when(obj).someMethod(); 

旧スタイルと同様の長さであるが、より明確に読み取り、括弧が少ない。doReturn()の他に、doThrow()、doAnswer()およびdoNothing() expectationがある。

Mockitoに含まれるその他の機能は、以下のとおりである。

 

  • 具体的なクラスおよびインターフェイスをmockする機能
  • カスタム引数matcher
  • 命令された検証
  • クリーンスタックトレース

Mockitoを始めるのは、クラスパスにJARファイルを追加することと同じくらいに簡単である。インストールの手順、文書および詳細なコードのサンプルについては、Google Codeプロジェクト(リンク)のサイトを訪問のこと。

原文はこちらです:http://www.infoq.com/news/2008/09/mockito-1.5

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT