比方說,我有一堆看起來像類...單元測試.net中高度耦合的代碼;反射注入模擬?
class Foo{
private Bar highlyCoupled = new highlyCoupled();
public bool DoTheThing(){
return highlyCoupled.doesTheThing();
}
}
是否有可能使用反射來打開foo和注入(鴨衝可能是一個更正確的說法)某種mockHighlyCoupled在高度耦合的地方?
怎麼樣在這種情況下...
class DoubleFoo : Foo{
public bool DoTheOtherThing(){
return DoTheThing();
}
}
可以繼承highlyCoupled有一個模擬插在它的地方嗎?
不幸的是,重構代碼以便不需要反射是不可能的。
第2行的語法錯誤。 – 2012-04-05 14:28:01
沒有一些嚴重的重構,你的測試可能非常脆弱。 – jrummell 2012-04-05 14:29:28
那你在問什麼?你能用反射來設置私人成員嗎?是的你可以。這樣做有困難嗎? – cadrell0 2012-04-05 14:35:17