InfoQ

News

.NETのモックライブラリ、Moq

作者 Al Tenhundfeld, 翻訳者 編集部 投稿日 2008年8月20日 午前12時48分

コミュニティ
.NET
トピック
ユニットテスト,
.NETフレームワーク
タグ
テスト,
TDD,
Mocks
Moq(リンク)とは.NET 3.5の機能(例えばLinq expression tree やラムダ式)を利用できるよう設計され開発された.NETのモックライブラリ(リンク)である。Moqの目的とは、開発者にテストを書き直させたり広範囲なRecord/Replayのモックフレームワークを学習させたりする代わりに、既存のユニットテストへ自然に統合することを可能にし、単純で直接的にさせることである。Moqは、テストを書いているもののモックフレームワークを使用していない開発者を対象にしている。Moqのデザイン原理は非常に低い障害でエントリーでき、リファクタリングし易いことである。

Moqの機能は以下のとおり。
  • Strong-typed: 想定可能なstringはない。戻り値や制約を戻すオブジェクトタイプはない。
  • 最高のVSインテリセンス統合: すべて完全なVSインテリセンスをサポートする。想定の設定から、メソッドの呼び出し引数や戻り値の指定まで、など。
  • 学習すべきRecord/Replyイディオムはない。あなたがモックを構築し、想定結果を設定し、それを使用し、そして任意として検証するだけである。
  • これら3点のとても低いラーニングカーブ。ほとんどの場合、説明書を読む必要はない。
  • Granularが簡単なMockBehavior列挙による偽りの動作を制御する(mock、stub、fake、dynamic mockなどの理論的な違いを学習する必要はない)
  • Mockは調和され分類される。
  • 想定結果を無効にする:テストの際に必要に応じてfixture setupで初期設定の想定を設定でき、無効にもできる。
  • モッククラス用にコンストラクタに引数を渡す
  • モック上のインターセプトやraise event
  • Moqはオープンソース(ZIP)であり、より多くのコントリビュータを熱望している。ソースに加え、バイナリ(ZIP)とスタートアップガイド(リンク)がGoogle Code上に掲示されている。

    Daniel Cazzulino氏は、Moqの現役の保守管理者である。Moqを開発した理由と、Moqの有効的な使用方法を一連の記事(リンク)に載せている。

    原文はこちらです:http://www.infoq.com/news/2008/08/Moq

    ブックマーク
    digg+,
    reddit+,
    del.icio.us+,
    dzone+,
    Hatena

    No comments

    返信

    特集コンテンツ一覧

    トップスポーツチームの監督に教わる秘訣

    この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

    事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

    この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

    Agile2008チーム参加レポート - 帰国そして変化

    Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

    SilverlightとJavaのインターオペラビリティ

    マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。

    Agile2008 チーム参加レポート - カンファレンス参加編

    Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。

    Agile2008 チーム参加レポート - 動機/準備編

    筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。

    Javaトラブルシューティングメルマガ総集編 2008/08~09

    エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。

    モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

    この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。