考慮這種不受我控制的型別:
public class Foo : FooBase {
public Foo(IBar bar)
: base(bar) { // <---- here's the problem
}
// other stuff...
}
我可以這樣做:Substitute.ForPartsOf<Foo>(Substitute.For<IBar>())。但它呼叫基類的建構式,所以一切都中斷了。
我以為我可以使用一些DoNotCallBase魔法或類似的東西,但找不到方法。
處理這種情況有什么技巧嗎?
uj5u.com熱心網友回復:
不,DoNotCallBase模擬僅適用于虛擬成員,而不適用于建構式。建構式必須呼叫基類建構式之一,這是 .NET Framework 嚴格要求的。我所知道的任何模擬框架都無法解決這個問題。
但是,呼叫基類有什么問題呢?你使用一個介面 Mock,所以在 IBar 上有正確的期望,一切都應該作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/360724.html
上一篇:如何修復此單元測驗?
