5
這裏是父類代碼實現的部分:試驗方法嘲笑處理如何在使用Moq的測試中引發事件?
handler.FooUpdateDelegate += FooUpdate(OnFooUpdate);
protected abstract void OnFooUpdate(ref IBoo boo, string s);
我:
Mock<IHandler> mHandler = mockFactory.Create<IHandler>();
這...
mHandler.Raise(x => x.FooUpdateDelegate += null, boo, s);
...不加工。它說:
System.ArgumentException:無法找到附加或分離方法的事件無效set_FooUpdateDelegate(FooUpdate)。
我想提高OnFooUpdate
所以它觸發代碼在子類中測試。
問題:我該如何使用Moq提升委託(不常見事件處理程序)?
如果我完全錯過了這一點,請啓用我。
大答案把版本:
如果是這樣,那麼你就可以直接調用myClass的FooUpdateDelegate像這樣
編輯。我要提到的一件事是,您可能必須通過調用mockMyClass.SetupAllProperties() – Eternal21
@ Eternal21來保留FooUpdateDelegate屬性。Mock正在使用MyClass中屬性的具體實現,因此它可以按原樣運行。如果我們嘲笑一個接口(比如IMyClass),那麼就沒有具體的實現,並且需要在模擬上設置屬性。 –
AlanT
這就是我的情況。 – Eternal21