ユニットテストには、NUnit2.6とMoq4.0を使用しています。Moqのプロキシオブジェクトがメソッド呼び出しを実際の実装に中継しない仮想メンバーに関する特定のケースがあります(おそらく設計による)。たとえば、クラスがあったら...
public class MyClass {
protected virtual void A() {
/* ... */
}
protected virtual void B(...) {
/* ... */
}
}
...そして、Moqを使用してテストフィクスチャGetSomethingElse
ののメソッドをオーバーライドします...A()
var mock = new Mock<MyClass>();
mock.Protected().Setup("A").Callback(SomeSortOfCallback);
...モックのA
方法を使用すると見事に機能します。ただし、上記のメソッドのいずれかがモックされていないメソッドを呼び出すB
場合、実際の実装がに存在する場合でも、メソッドは何も実行しないか、デフォルト値を返しますMyClass
。
これを回避する方法はありますか?Moqを間違って使用していますか?
よろしくお願いします、
マニー