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();
すごくシンプル♪これは導入を検討しなければ…!