我目前使用NSubstitute作爲我的嘲弄框架,在我做的還算不錯,但有一個例外是事件...NSubstitute和嘲諷的對象火
我試圖嘲弄的互動,從我的嘲笑對象中調用一個事件,不幸的是我真的很努力做到這一點。該設置是這樣的......
Public Interface IMockObject
Event MyMockedEvent(someId as Integer)
Sub MyRoutineThatInvokesMyMockedEvent(someId as Integer)
End Interface
...所以在我的單元測試我需要模擬「MyRoutineThatInvokesMyMockedEvent」接收ID,然後提高「MyMockedEvent」。到目前爲止,我已經拿出...
Dim mockedObject = Substitute.For(Of IMockObject)()
mockedObject.When(
Sub(x) x.MyRoutineThatInvokesMyMockedEvent(999)).Do(
Sub(y) 'RaiseTheEventHere)
...但我卡在實際上有以下無效引發事件......
mockedObject.When(
Sub(x) x.MyRoutineThatInvokesMyMockedEvent(999)).Do(
Sub(y) RaiseEvent MyMockedEvent(999))
...我確實有一個理論認爲,在VB.NET中這可能是不可能的(沒有創建一個幫助程序),但是很樂意在沒有幫助程序的情況下如何實現上述任何幫助。
如果要測試你的嘲笑對象要測試,你可以嘲笑不是對象正確實施的對象。你似乎做錯了。 – Sebastien 2017-03-02 17:16:00