Moq のススメ

Tech Ed 2009 で、「Moq」というライブラリの存在を知りました。Moq はモックを使った単体テストを記述するためのライブラリです。

Moq の特徴は、モックの振る舞いをラムダ式で指定できること。ラムダ式で指定できるので、Visual Studio のインテリセンスの恩恵が受けれます。

Moq を使ったテストコードは次の通り。

// あいさつインタフェース
// Moq を使って、このインタフェースを実装するモックを作成する
public interface IGreeting
{
     string Greet(string name);
}
// モックを生成
Mock<IGreeting> mock = new Mock<IGreeting>();

// モックの振る舞いをラムダ式で指定
// インテリセンスが使える!
mock.Setup(p => p.Greet("Ichiro")).Returns("Hello, Ichiro!");

// モック呼び出し
string actual = mock.Object.Greet("Ichiro");

// 正常に動作したか確認
Assert.AreEqual("Hello, Ichiro!", actual);

// モックがちゃんと呼び出されたか検証
mock.VerifyAll();

すごくシンプル♪これは導入を検討しなければ…!