Rhino Mocks
これはなかなかいいな。
NMock2.0からの移行は、以下の手順で行った。
- NMock2.0で書いたテストをRhino Mocksでも作成(別ファイルに作成)
- どちらのテストもすべて成功することを確認
- NMock2.0のテストを削除
NMock2.0よりも優れている点としては、
- Rhino Mocksは文字列による設定じゃないから、名前を気軽に変更できる
- 設定中に実際にメソッドを呼び出しているため、シグニチャを変更してもコンパイル時に検出可能
- NMock2.0では横に広がりすぎるため、改行していた部分を改行なしで書けたり、改行の回数を減らせる
逆に、劣っている部分としては、
- なぜかCallメソッド呼出し後にIntelliSenseがきかない
- 戻り値の型がvoidのメソッドのテストは次のうち二択
- 回数を制限する方法が少し貧弱
くらい。
Callメソッド以降にIntelliSenseがきかないのは残念だけど、重要なのはCallメソッドの引数部分なのでこの部分でIntelliSenseがきくのはNMock2.0に対する大きなアドバンテージかな。
あと、ほとんどの場合で記述量がNMock2.0より少ないと言うのもかなりいい感じ。
例えば、
// NMock2.0 Expect.Once.On(hoge).Method("Hoge").WithNoArguments().Will(Return.Value(10));
こう書いていたのが、
// Rhino Mocks Expect.Call(hoge.Hoge()).Return(10);
こう書ける。
これからはRhino Mocksを使っていくか。