Пренасям любимата си библиотека Java/JavaScript Mocktito към Smalltalk. В момента съм на етап внедряване на Spy за заглушаване на реални обекти. Проблемът ми възниква, когато шпиониран обект извиква свой собствен метод, който е заглушен. Вместо:
self aMethod.
Предпочитам да делегирам повикването към шпионския обект:
spyObject aMethod.
Ето тест за сценарий за очакваното поведение:
realObject := RealObjectForTesting new.
spyedObject := Spy new: realObject.
spyedObject when: #accesorWhichReturnsValue thenReturn: 'stubbed value'.
spyedObject accesorWhichCallsSelf.
self assert: (spyedObject verify: #accesorWhichReturnsValue).
Някакво предложение?