モックに型を偽装させる方法はありますか? 私はこのようなことをしようとしています:
var myMock = new Mock<IMyType>();
myMock.Setup(x => x.GetType()).Returns(typeof(MyTypeImpl));
ただし、GetType
オーバーライドできません。
助言がありますか?
私はこれが古い投稿であることを知っていますが、私はこの問題の解決策を探していました...
Moqを使用すると、インターフェイスに標準のGetTypeシグネチャを追加して、メソッドがすでに実装されているため、コードを追加することなく、Moqがメソッドをモックできるようにすることができます。
Type GetType();
is
演算子を使用して型をチェックする代わりに、同様の機能を実行する独自のオーバーライド可能なインターフェイス メソッドを実装し、通常の一連のクラスで演算子 (または) を使用して実装することができます (すべきではありません)。is
typeof()/GetType()
とはいえ、このようにテスト可能にする必要がある方法でオペレーターを使用している場合、is
基本的にポリモーフィズムとインターフェースの目的をどこかで無効にしている可能性が高くなります。処分できないか考えてみます。