次のようなクラスがたくさんあるとしましょう...
class Foo{
private Bar highlyCoupled = new highlyCoupled();
public bool DoTheThing(){
return highlyCoupled.doesTheThing();
}
}
リフレクションを使用して foo を開き、highlyCoupled の代わりにある種の mockHighlyCoupled を注入することは可能ですか?
この状況でなんと…
class DoubleFoo : Foo{
public bool DoTheOtherThing(){
return DoTheThing();
}
}
継承されたhighlyCoupledにモックを挿入できますか?
残念ながら、リフレクションを必要としないようにコードをリファクタリングすることはできません。