2

私たちはMoqを使用していますが、virtualメソッドの現在の役割が何であるか疑問に思っていました.2008年の以下の投稿では、Moqが機能する(またはインターフェイスから継承する)ために、メソッドを仮想としてマークする必要があることは明らかです。

Moq ディスカッション

ただし、.Net 4.5 でも、virutalモックしたいクラスでメソッドを使用する必要があるのでしょうか? また、これは、静的メソッドの周りにラッパー クラスを作成する場合にも当てはまりますか? ラッパー クラスはインターフェイスから継承するか、問題のメソッドをマークする必要がありますvirtualか?

4

1 に答える 1

2

これは、.NET 4 または 4.5 では変更されていません。あなたが提供したリンクが説明しているように、Moq は Castle Windsor Dynamic Proxyを使用して、モックしたい型から派生した型を生成します。したがって、継承の標準ルールが適用されます。Moq によって生成された派生型は、通常の派生クラスがオーバーライドできるメソッドへの呼び出しのみをインターセプトできます。

于 2012-11-24T13:27:25.463 に答える