В настоящее время я использую NSubstitute в качестве своей насмешливой структуры, и у меня все хорошо, за одним исключением, которое...
Я пытаюсь издеваться над взаимодействием, которое вызывает событие внутри моего издевательского объекта, к сожалению, я действительно изо всех сил пытаюсь это сделать. Настройка примерно такая...
Public Interface IMockObject
Event MyMockedEvent( someId as Integer )
Sub MyRoutineThatInvokesMyMockedEvent( someId as Integer)
End Interface
... поэтому в моем модульном тесте мне нужно смоделировать «MyRoutineThatInvokesMyMockedEvent», чтобы получить идентификатор, а затем поднять «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 (без создания вспомогательной процедуры), но я буду рад любой помощи в том, как добиться вышеуказанного без вспомогательной процедуры.