我目前使用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