Moq(リンク)は.NET向けのmockingライブラリである。Version 3.0 RTMがリリースされ、ダウンロードで利用可能である(リンク)。
mockingが.NETにおいて主流になるに従って、Moqの人気は高まった。その理由の一部として、Moqはmockingの初心者または独自のカス タムモックオブジェクトを記述しているデベロッパを対象としたものだからである。Moqは、古臭い記録/返答イディオムを使用せず、代わりにテスターにラ ムダ式を使って振る舞い上の期待を設定させ、Castle DynamicProxy(リンク)を利用することでモックオブジェクトコールを傍受させる。
Moq 3.0は、主な新リリースを表し、以下に挙げるような著しい変更を伴う。
- Silverlightサポート
Silverlightに完全準拠した個別のバイナリが利用可能
- 新たな簡易化イベント発生構文
例: mock.Raise(foo => foo.MyEvent += null, new MyArgs(...));
- カスタムイベント署名のサポート(EventHandler非準拠)
例: mock.Raise(foo => foo.MyEvent += null, arg1, arg2, arg3);
- 改善されたプロパティセッターの振る舞い
例: mock.VerifySet(foo => foo.Value = "foo");
- 追加のサンプルアプリケーションコード
ASP.NET MVCアプリケーションは、最新バージョンと動作するようにアップデートされた
- Pexとのより良い統合
以前、PexはMoqライブラリコードの分析に集中して取り組んで、Moqフレームワークの内部構造を解明しようとした。3.0リリースでは、Pexの属性は、テスト中のコードに無関係のMoqの特定領域をモニターするPexをシャットダウンする。
Moqを開始するためには、便利なAPI文書(リンク)をブラウズするか、Justin Etheredge氏(C# MVP)の最近のシリーズ、Beginning Mocking with Moq 3(リンク)のようなスタートガイドを参照するとよい。